Формат номера телефона

Проверка номера сотового телефона на PHP

Как проверить номер мобильного телефона? Проверка правильности, введенного номера телефона является не сложной, но важной задачей. Если пользователь введет некорректный номер, то смс сообщение до него не дойдет.

PHP проверка сотового телефона позволяет убедится, что номер телефона содержит только цифры: без тире, пробелов, дефисов, скобок и т.д. Часто владельцы прямых номеров не вводят свой код, а он необходим для отправки смс сообщения.

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

Однако, чтобы избежать данных проблем, мы предлагаем обрабатывать вводимый клиентом телефон на сайте уже в момент его регистрации. Это позволит вам гарантированно доставлять смс сообщения через php на телефон вашего клиента.

<?php /* * функции проверки номера сотового телефона */ // $_POST[‘userPhone’] — номер телефона получаемый из формы // Данная проверка принимает только 10 значные номера (9031234567) состоящие только из цифр, // без скобок, дефисов и пробелов // {10,10} — показывает диапазон допустимой длинны номера, если нужно проверять номер на 11 знаков, // то нужно изменить на {10,11} if(!preg_match(«/^[0-9]{10,10}+$/», $_POST[‘userPhone’])) echo («Телефон задан в неверном формате»); // Добавляем семерку к номеру телефону, если мы рассылаем по России. $_POST[‘userPhone’] = «7».$_POST[‘userPhone’]; // Иногда возникает необходимость проверить первую цифру номера, например если он // 11-ти значный то для корректной отправки через наш API необходимо, // чтобы номер начинался с 7, проверим это $first = substr($_POST[‘userPhone’], «0»,1); if($first != 7) echo («Ваш номер телефон начинается не на семерку»); exit(); ?>

 

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

Данный инструмент создан исключительно для удобства пользователей.

Преобразование номера проходит в 2 этапа:

  1. Очистка номера от лишних символов (скобок, пробелов, дефисов)
  2. Преобразование номера в формат вашей страны, указанной в настройках.

Все номера телефонов, введенные Вами, очищаются от лишних символов. Например, номер телефона, введенный как «8(900)377-99-77» после «очистки» будет выглядеть как 89003779977. Очистка номеров от лишних символов производится в любом случае и не зависит ни от каких настроек.

Формат преобразования номера зависит от страны, указанной в разделе «Настройки». Суть преобразования заключается в том, что перед номером телефона дописывается число — код страны.

Если при вводе нового контакта нажат значок глобуса «В международный формат», производится преобразование номера в международный формат для соответствующей страны.

Например, международный код России +7. Номер телефона в предыдущем примере (89003779977) принадлежит России, но не начинается с +7. Поэтому он будет преобразован в 79003779977, то есть к номеру телефона (который для России состоит из 10 цифр) приписывается первое число обозначающее код страны (в данном случае +7), а знак + убирается.

Также может быть что в номере вообще не указано никакое число перед номером телефона.

Например, 9003779977. В таком случае, если значок глобуса «В международный формат» нажат, он также будет преобразован в 79003779977, в соответствии с вашей выбранной в настройках страной.

Отправка смс за границу

Поэтому, если Вы хотите отправить сообщение за границу, Вам необходимо воспользоваться одним из следующих способов:

  • ИЛИ снять выделение со значка глобуса «В международный формат» и записать номер уже в международном формате, начиная с кода страны (79003779977);
  • ИЛИ поставить перед номером телефона знак «+», что будет указывать системе на то, что этот номер уже в международном формате и его преобразовывать не нужно (+79003779977).

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

Рассмотрим на примере отправку сообщения в Великобританию, код страны +44. Номера в местном формате выглядят так: 09003779977. При отправке сообщения на такой номер Вы не получите положительного результата. Необходимо указать номер в межународном формате, он должен выглядеть так: 449003779977. Соответственно, при отправке сообщения Вы можете указать его прямо так, или со знаком «+» в начале номера.

Внимание! Чтобы избежать ошибки, обратите внимание на следующий момент: если нажать значок глобуса «В международный формат» (при этом в настройках у вас установлена, например, страна Россия), и ввести номер БЕЗ знака «+» (т.е. 449003779977), то система попытается привести данный номер в международный формат предполагая что это Российский номер, и номер будет сохранен как 79003779977, что вообще не соотвествует тому номеру который вы вводили, поэтому рекомендуется всегда ставить знак «+» и вводить номера в международном формате для номеров, страна которых отлична от вашей страны, выставленной в настройках. То есть указывая номер контакта в международном формате +449003779977, вы избежите ошибок с преобразованием.

Знаменитая конференция о мобильной связи на «Ячейках». Основана 7 сентября 1999 г. Обсуждаются операторы мобильной связи, а также общие вопросы индустрии. Администраторы форума — b13, turist, agal 

Размещено пользователем : Фролик ()
Зарегистрирован: 9 годов назад
Сообщения: 66
Ранг: Интересующийся

Дата: 23-04-2018 10:14

Блокировка отправки смс?

"Сообщение не отправлено. Неверный формат номера телефона" (+) (Тупой вопрос)

Около месяца назад обнаружил, что Билайн ввел некие ограничения на отправку смс, часть смс не отправляются и при попытке отправить появляется сообщение «Сообщение не отправлено. Неверный формат номера телефона»
Смс отправлялись как на 10 значный формат, так и на +7 — ошибка одинаковая.

В колл центре предположили, что сработала блокировка, услугу переподключили и все заработало, но довольно быстро снова заблокировалось. В договоре указано, что запрещена рассылка сообщений 100 адресатам. У меня блокировка сработала примерно после 40 смс на разные номера, каждое сообщение состоит из 2 смс.

Аналогичная блокировка обнаружилась и на МТС.




Чтобы указать телефонный номер используйте для этого специальное поле. По своему виду и работе оно совпадает с текстовым полем. Синтаксис создания этого поля следующий.

Атрибуты полностью совпадают с текстовым полем.

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

Смысл применения этого поля в настройке шаблона ввода телефона, который используется в определённом городе или стране, а также в некоторых расширенных возможностях по управлению стилями.

Создание поля для телефона показано в примере 1. Требуется ввести телефон в указанном формате, иначе браузер выведет сообщение об ошибке и не станет отправлять форму, пока поле не будет заполнено корректно.

Пример 1. Поле для телефона

HTML5IE 10+CrOpSaFx

Результат примера при вводе неправильного телефона показан на рис. 1.

Рис. 1. Ввод телефона в браузере Chrome

Браузеры IE и Safari не поддерживают этот вид поля и соответственно не делают проверку на шаблон телефона.

Если указать размеры диагоналей для обоих дисплеев, то эта страница будет работать в режиме их сравнения. В этом режиме дисплеи с шириной меньшей его высоты (например смартфоны) показываются в портретной ориентации. Достаточно навести курсор на область просмотра, чтобы увидеть такой дисплей в альбомной ориентации.

Если указано разрешение дисплея, то его формат рассчитывается автоматически и становится доступна информация по DPI, размерам пикселя и шрифтов. Ручной выбор формата работает только если не указано разрешение дисплея.

Чтобы не загромождать таблицы, в них по умолчению отображаются только основные параметры. Для просмотра более полной информации (размеры контента, шрифтов и различимость пикселя), кликните по надписи «Подробно» над таблицей размеров.

Чтобы поделиться ссылкой на вариант сравнения дисплеев, вставьте ее в пост на форуме или в сообщение по e-mail. Скопировать ссылку на эту страницу можно из адресной строки браузера, либо отсюда, как текст:
http://www.mehanik99.ru/mons/sizes
Если нужна только ссылка на размеры известного вам дисплея (или на их сравнение), не обязательно отправлять форму на сервер. Новая ссылка формируется сразу, поэтому введя нужные параметры дисплея(ев) можете сразу ее копировать. При изменении любого параметра дисплея (поля формы) всегда создается новый адрес страницы. Этот адрес запоминается в истории браузера и поэтому кнопками вперед/назад можно в любой момент перейти к одному из предыдущих сравнений.

Существуют некоторые ограничения по параметрам: диагональ дисплея должна быть от 1 до 394 дюймов (от 25 до 9999 мм), а разрешение экрана (по любой его стороне) от 23 до 9999 пикселей.

Добавить комментарий

Закрыть меню