Преобразовать число в международный, PHP - PullRequest
2 голосов
/ 13 января 2011

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

Примечание. Этот скрипт запускается только в том случае, если число соответствует регулярному выражению.

Ответы [ 3 ]

4 голосов
/ 13 января 2011

Что-то вроде этого, возможно?

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

или если вы хотите использовать только мобильные номера Великобритании:

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

(примечание: я предполагаю, что это специфично для Великобритании, так как вы указали '44' в вопросе)

Для этого используется Regex, но он должен быть довольно быстрым по скорости выполнения, поскольку он привязан к началу строки.

2 голосов
/ 13 января 2011

Самый быстрый способ, который мне приходит в голову, если вы уже не знаете, что число соответствует формату 07xxxxxx на данный момент:

1 голос
/ 13 января 2011
...