PHP

Делаем номера телефонов в тексте кликабельными ссылками. PHP

PHP. Как с помощью регулярных выражений сделать номера телефонов в строке кликабельными?

sqlka.ruОпубликовано: Чтение: 1 мин.
Делаем номера телефонов в тексте кликабельными ссылками. PHP

Как сделать номера телефонов кликабельными в PHP

Допустим, у нас имеется строка вида:

$detail_text = "
Номер1: 8-999-555-5566
Номер2: 8-919-555-07-43
Номер3: +7-939-555-0743
Номер4: 8-958-5554443
Номер5: +7-978-555-88-43
Номер6: +7-987-555-07-43
";

Нам необходимо выводить номера телефонов в тексте в виде кликабельных ссылок (т.е. чтобы по ним можно было нажать и позвонить), по умолчанию они некликабельны.

Исходный текст

С помощью регулярного выражения заменяем номера на ссылки:

$detail_text = preg_replace(
    '/(8|7|\+7)?[-\\(]?([9][0-9]{2})[-\\)]?(([0-9]{2}[- ]{0,}[0-9]{2}[- ]{0,}[0-9]{3})|([0-9]{3}[- ]{0,}[0-9]{2}[- ]{0,}[0-9]{2})|([0-9]{3}[- ]{0,}[0-9]{1}[- ]{0,}[0-9]{3})|([0-9]{2}[- ]{0,}[0-9]{3}[- ]{0,}[0-9]{2}))/',
    '$1-$2-$3',
    $detail_text
);

В итоге получаем кликабельные ссылки:

Результат

Объяснение регулярного выражения

  • (8|7|\+7)? – необязательный префикс (8, 7 или +7).
  • [-\\(]? – возможный разделитель (дефис или открывающая скобка).
  • ([9][0-9]{2}) – код оператора, начинающийся с 9, затем две любые цифры.
  • [-\\)]? – возможный разделитель (дефис или закрывающая скобка).
  • Далее идёт альтернатива из четырёх шаблонов для оставшихся семи цифр с различными вариантами группировки через дефисы или пробелы.

Обратите внимание, что в качестве строки замены используется $1-$2-$3, где $1, $2, $3 – это значения соответствующих захваченных групп.

Хотите освоить SQL для работы с данными?

В SQLka можно изучать SQL последовательно или готовиться к собеседованиям. Запросы выполняются прямо в браузере — устанавливать базу данных не нужно.

sqlka.ru

support@sqlka.ru

Дальше по теме

PHP

Получаем список популярных поисковых запросов из Яндекс.Вебмастер через PHP API

Практическое руководство по использованию API Яндекс.Вебрастера на PHP для получения ТОП популярных поисковых запросов по вашим сайтам. Примеры кода, авторизация OAuth, обработка ответов.

sqlka.ruЧтение: 9 мин.
← Все статьи