Определение международных телефонных номеров в строке в PHP - PullRequest
2 голосов
/ 16 июня 2011

Я пытаюсь написать функцию, которая будет извлекать действительные номера телефонов из строки, действительной где-то на планете.Это действительно международный сайт для организации, имеющей офисы по всему миру и пользователи в каждом местоположении, имеющие к нему доступ.

Мне это в основном нужно для переноса базы данных.Предыдущие сайты, с которых я мигрировал, использовали только простое текстовое поле без инструкций и без фильтрации.Таким образом, это приводит к тому, что поля телефона используются во всех видах творческого подхода.

То, что я ищу, - это просто определить первый номер телефона в строке, а затем, возможно, удалить все лишние символы перед установкой результата какИнформация профиля пользователя.

Ответы [ 3 ]

5 голосов
/ 16 июня 2011
2 голосов
/ 16 июня 2011

вы можете использовать что-то вроде этого:

$pattern = '/([\+_\-\(\)a-z ]+)/';

или

$pattern = '/([^0-9]+)/i';

$phone = preg_replace($pattern,'', $phone);

или использовать php-фильтр как:

$phone = (int) filter_var($phone, FILTER_SANITIZE_NUMBER_INT);

, хотя с фильтромвам нужно быть осторожным, если вы позволяете значению начинаться с «0».

, затем, в любом случае, проверьте диапазон длин для разрешенных телефонных номеров ~ 6–12 или независимо от того, что охватывает ваш диапазон.

0 голосов
/ 16 июня 2011

Во-первых, вам нужно будет составить список допустимых форматов телефонных номеров.

Во-вторых, вам нужно будет создать регулярные выражения для идентификации каждого формата.

В-третьих, вы запуститеотыскивает ваш текст для поиска чисел.

...