将数字转换为国际PHP

时间:2011-01-13 13:15:38

标签: php internationalization string-formatting phone-number

在PHP中,将手机号码转换为国际格式的最快方法是:

所以07123456789变为44712​​3456789。

我尝试了几种方法,似乎无法让它发挥作用。

这是当前的脚本:

    if(strlen($gsm) > 2) {
        if(!substr_compare($gsm, "07", 0, 2, false)) {
            unset($gsm);
        }
        elseif (substr_compare($gsm, "07", 0, 3, true)) {
            if(strlen($gsm) == 11) {
                return "447" . substr($gsm, 2);
            }
        }
    }

注意:仅当数字与正则表达式匹配时,才会运行此脚本。

3 个答案:

答案 0 :(得分:4)

也许是这样的事情?

$intl_number = preg_replace('/^0/','44',$uk_number);

或者如果您特别想要使用英国手机号码:

$intl_number = preg_replace('/^07/','447',$uk_mob_number);

(注意:我假设英国特定,因为你在问题中指定'44')

这确实使用了正则表达式,但执行速度应该非常快,因为它固定在字符串的开头。

答案 1 :(得分:2)

我想到的最快的方式,只要你这个数字符合格式07xxxxxx:

 $number = "07123456789";
 $number = '44'.substr($number,1);

答案 2 :(得分:1)