2011-01-13 11 views
2

In PHP, was der schnellste Weg ist es, eine Handy-Nummer zu internationalem Format zu konvertieren:eine Reihe international, in PHP

So 07123456789 wird 447123456789.

Ich habe ein paar Möglichkeiten ausprobiert und kann nicht scheinen, zu erhalten es funktioniert.

Dieses aktuelle Skript:

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); 
      } 
     } 
    } 

Hinweis: Dieses Skript läuft nur, wenn die Zahl einen regulären Ausdruck übereinstimmt.

+1

schnell wie in Skript-Ausführungszeit oder Linien/Komplexität des Codes? – Hannes

+0

@Hannes: Ausführungszeit –

Antwort

3

So etwas vielleicht?

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

oder wenn Sie speziell mögen nur UK Handynummern tun:

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

(Anmerkung: Ich gehe davon aus UK-spezifisch, da Sie in der Frage '44' angegeben)

Dies verwendet Regex, sollte aber in der Ausführungsgeschwindigkeit ziemlich schnell sein, da es am Anfang der Zeichenfolge verankert ist.

+0

Ich werde das ein Dankeschön geben: D –

+0

leichter Tippfehler: $ intl_number = preg_replace ('/^07 /,' 447 ', $ uk_mob_number); sollte $ intl_number = preg_replace ('/^07 /', '447', $ uk_mob_number) sein; –

+0

@Kyle - d'oh. Fest. Vielen Dank. (leicht zu übersehen die Quote Zitat, wenn Sie keine Syntax-Highlighting haben und Sie nicht wirklich den Code ausführen!) – Spudley

2

schnellste Art und Weise, die für mich, so lange in den Sinn kommt, wie Sie die Nummer shre werden entspricht das Format 07xxxxxx an dieser Stelle:

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

Ich bin manchmal dick, Ihre Antwort ist geradlinig und würde perfekt funktionieren, danke viel Kumpel ... Sie verpasst die Gleichen obwohl: D –

+0

@ kyle upsy xD yeah Ich schrieb Rückkehr zuerst und dann ersetzte es mit dem variablen Namen - froh, dass ich helfen konnte – Hannes