2

를 숫자로 변환 :국제 형식으로 휴대 전화 번호를 변환하는 가장 빠른 방법이 무엇인지 PHP에서, 국제에 PHP

그래서 07123456789가 447123456789.

나는 몇 가지 방법을 시도되고 캔트 얻을 것 그것은 작동합니다.

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

@ 카일 - 오. 결정된. 감사. (문법 강조 표시가없고 코드를 실제로 실행하지 않을 때 이상한 따옴표를 놓치기 쉽습니다.) – Spudley

2

가장 빠른 방법은이 시점에서 형식 07xxxxxx와 일치 :

스크립트 실행 시간 또는 라인/코드의 복잡성 등
$number = "07123456789"; 
$number = '44'.substr($number,1); 
+0

가끔 두껍기 때문에 대답은 간단하고 완벽하게 작동합니다. 당신은 같음을 놓쳤습니다 : D –

+0

@kyle upsy xD 예. 먼저 리턴을 쓴 다음 변수 이름으로 바꿨습니다. – Hannes