2011-01-13 14 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

+0

@Hannes:実行時間 –

答えて

3

これはおそらく何か?

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

またはあなたは、具体的にのみ、英国の携帯電話番号をしたい場合:

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

(注意:あなたが指定したので、私は質問に「44」を英国特有のを想定しています)

これはRegexを使用しますが、文字列の先頭に固定されているので実行速度がかなり速くなります。限り、あなたは数をSHREているように、私のために頭に浮かぶ

+0

私はそれに感謝を与えるでしょう:D –

+0

わずかなタイプミス: $ intl_number = preg_replace( '/^07 /、' 447 '、$ uk_mob_number); $ intl_number = preg_replace( '/^07 /'、 '447'、$ uk_mob_number)にする必要があります。 –

+0

@Kyle-d'oh。一定。ありがとう。 (構文の強調表示がなく、実際にコードを実行していないときに奇妙な引用符を見逃しやすい!) – Spudley

2

最速の方法は、この時点でフォーマット07xxxxxxに一致します。

スクリプトの実行時間や線/コードの複雑さのよう
$number = "07123456789"; 
$number = '44'.substr($number,1); 
+0

私は時々厚く、あなたの答えはまっすぐであり、完璧に働くだろう、ありがとうalot matey ...あなたは同じことを逃しました:D –

+0

@kyle upsy xDええ私は最初にリターンを書いた後、それを変数名に置き換えました。 – Hannes

関連する問題