Я не думаю, что такой скрипт или веб-сервис существует, я исследовал нечто подобное пару недель назад.
Поскольку в разных странах номера телефонов разной длины, я думаю, вам будет нелегко создать сценарий, который будет работать для всех стран с различными способами записи номера телефона.
Вы должны сделать предположения о номере телефона, указанном в качестве ввода.
В основном у вас есть два разных подхода.
- Создание жесткого решения, которое работает только с известными форматами телефонных номеров
- Создание гибкого решения, которое принимает только легко идентифицируемые международные форматы, но, как следствие, принимает любой внутренний формат.
Я бы выбрал второй вариант.
В ваших примерах № 1 и 2 легко идентифицируются как международные номера.
Номер 3 трудно идентифицировать, потому что это может быть либо международный номер в Великобритании , либо неизвестная страна с 12-значными внутренними телефонными номерами.
Так что я бы начал с принятия варианта один и два в качестве действительных международных номеров и пропуска номер три.
<?php
$number = "00447749123123"; // remember the quotes the number must
// keep leading zeros.
if (preg_match('/^(00|\+)/', $number)) {
echo "International number";
// parse and recognize country code.
} else {
echo "national number";
// identify which country
}
Невозможно определить национальные телефонные номера, не зная заранее, в какой стране они находятся, поскольку многие страны будут использовать одни и те же форматы. Поэтому необходимо, чтобы пользователи выбирали свою страну в веб-форме и добавляли международный код к номерам.