我有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);
}
希望帮助某人。