[英]strip international calling code from phone number using php
我有php mysql應用程序,我希望電話號碼以特定格式保存。 經過一番谷歌搜索后,我達到了這個功能:
function RemoveExt($phone) {
if(substr($phone,0,1) == '+' || substr($phone, 0,2) == 00){
$phone = preg_replace('/[^\d]/', '', $phone);
}
$phone=trim($phone);
$prefixs=array('0097150','0097156','0097152','0097155', '97150','97156','97155','97152','050','056','055','052','00');
$replace=array('050','056','052','055','050','056','055','052','050','056','055','052','00');
$count = count($prefixs);
for($i = 0; $i < $count; $i++)
{
if(strncmp($phone, $prefixs[$i], strlen($prefixs[$i])) == 0){
$phone = preg_replace('/^'.$prefixs[$i].'/i','',$phone);
$ext=$replace[$i];
return array('phone' => $phone, 'ext' => $ext);
}else{
return array('phone' => $phone, 'ext' => $ext);
}
}
}
例如,電話號碼+971501234567 =>“ +”將是國際代碼,“ 971”將是國家代碼,“ 50”將是移動網絡代碼,“ 1234567”將是移動電話號碼。
請注意,我們有多個移動代碼。 我需要從號碼(移動網絡代碼,移動電話號碼)中保存兩個部分的問題,例如:+971501234567將另存為(050)移動網絡代碼和(1234567)移動電話。
誰能幫助我實現這一目標?
如果它們始終采用+971501234567的形式,請砍掉最后9個數字。 從這些中,以最后七個作為移動電話號碼,在前兩個前面加上0作為移動網絡。
我要分享工人階級:-
function RemoveExt($phone) {
if(substr($phone,0,1) == '+'){
$phone = preg_replace('/[^\d]/', '00', $phone);
}
$prefix=array('0097150','0097156','0097155','0097152','97150','97156','97155','97152','050','056','055','052','00');
$replace=array('050','056','055','052','050','056','055','052','050','056','055','052','00');
$count =count($prefix);
$counter=0;
while( $counter < $count){
if(strncmp($phone, $prefix[$counter] , strlen($prefix[$counter])) == 0){
$phone=substr($phone, strlen($prefix[$counter]));
$ext=$replace[$counter];
}
$counter++;
}
return array('phone' => $phone, 'ext' => $ext);
}
希望可以幫助別人。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.