Найти тему
bitrix.dev

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

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

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

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

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

по умолчанию они некликабельны.

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

$detail_text = preg_replace('/(8|7|\+7){0,1}[-\\\\(]{0,}([9][0-9]{2})[-\\\\)]{0,}(([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}))/', '<a href="tel:$1$2$3">$1-$2-$3</a>', $detail_text);

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

-2
-3