Регулярные выражения для замены на теги

Замена URL, e-mail и текста на HTML-теги по регулярному выражению PHP.

1

Замена URL на ссылки

В анкорах сформированных ссылок не будет http:// и GET параметров.

$text = '
	http://webmaster.yandex.ru/?hash=234&time=1 
	http://www.google.ru text.
';

echo preg_replace(
	'/(http:\/\/|https:\/\/)?(www)?([\da-z\.-]+)\.([a-z\.]{2,6})([\/\w\.-\?\%\&]*)?/i', 
	'<a href="\1\2\3.\4$5">\\2\\3.\\4</a>', 
	$text
);
PHP
<a href="http://webmaster.yandex.ru/?hash=234&time=1">webmaster.yandex.ru</a>
<a href="http://www.google.ru">www.google.ru</a>
2

Замена e-mail на ссылку

$text = 'admin@Mail.ru admin@ya.ru';

echo preg_replace(
	'/([a-z0-9_\-]+\.)*[a-z0-9_\-]+@([a-z0-9][a-z0-9\-]*[a-z0-9]\.)+([a-z]{2,6})/i', 
	'<a href="mailto:\\0">\\0</a>', 
	$text
);
PHP
<a href="mailto:admin@Mail.ru">admin@Mail.ru</a> <a href="mailto:admin@ya.ru">admin@ya.ru</a>
3

Замена хеш-тегов на ссылки

$text = '#HTML #CSS #JQuery';

echo preg_replace(
	'/\#(.*?)(\s|$)/', 
	'<a href="#$1">#$1</a>$2',  
	$text
);
PHP
<a href="#HTML">#HTML</a> <a href="#CSS">#CSS</a> <a href="#JQuery">#JQuery</a>
4

Оборачивание слов тегами

Замена специальных символов на теги, к примеру, как сделано в Whatsapp – сообщение *текст* отправится как текст. Также можно сделать в PHP:

$text = 'Быстрый выкуп *оригинальных катриджей* по лучшим *ценам*';

echo preg_replace(
	'/\*(.*?)\*/', 
	'<b>$1</b>',  
	$text
);
PHP
Быстрый выкуп <b>оригинальных катриджей</b> по лучшим <b>ценам</b>
5

Обвернуть фразу в ссылку

$text = 'Быстрый выкуп #оригинальных катриджей#';

echo preg_replace(
	'/\#(.*?)\#/', 
	'<a href="http://example.com">$1</a>',  
	$text
);
PHP
Быстрый выкуп <a href="http://example.com">оригинальных катриджей</a>
09.08.2019 86

Поделится

Другие публикации

Пример создания файла карты сайта (sitemap.xml) на PHP. Интеграция его на сайт и подключение его в robots.txt
parse_url($url, $component) – стандартная функция, разбирает URL-адрес на компоненты в виде массива.
Сборник регулярных выражений с примерами на PHP для проверки данных из полей форм.
Представленные способы помогут сделать алфавитный список (указатель) разбитый на колонки, для вывода например станций...