2011-01-13 22 views
2

在PHP什麼是一個手機號碼轉換爲國際格式的最快方法:轉換多項國際,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); 
      } 
     } 
    } 

注:此腳本僅數相匹配的正則表達式運行。

+1

快,在腳本的執行時間或行/複雜的代碼? – Hannes 2011-01-13 13:18:41

+0

@Hannes:執行時間 – 2011-01-13 13:19:31

回答

3

可能是這樣的,也許?

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

,或者如果你專門只希望做英國的手機號碼:

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

(注:我假設英國特有的,因爲你在問題中指定的「44」)

這確實使用正則表達式,但執行速度應該很快,因爲它固定在字符串的開頭。

+0

我會給出一個去感謝:D – 2011-01-13 13:32:13

2

我想到的對我來說,只要你shre數的最快方式格式07xxxxxx匹配在這一點上:

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