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

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

1

В анкорах сформированных ссылок не будет 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
$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>
6

Следующи пример заменяет <br> на \n между тегами <pre>...</pre>.

$html = '
	<pre>Пример текста с <br> переносом</pre>
	<br>
	<pre>Еще один <br> пример</pre>
';

function replaceBrTag($matches) {
	return str_replace('<br>', "\n", $matches[0]);
}

$html = preg_replace_callback('/<pre>(.*?)<\/pre>/s', 'replaceBrTag', $html);

echo $html;
PHP

Результат:

<pre>Пример текста с \n переносом</pre>
<br>
<pre>Еще один \n пример</pre>
09.08.2019, обновлено 02.03.2024
5171

Комментарии

, чтобы добавить комментарий.

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

Whois, как получить данные IP-адреса и домена в PHP
Несколько примеров как в PHP получить информацию о домене и IP-адресе.
19448
+5
Contenteditable – текстовый редактор
Если добавить атрибут contenteditable к элементу, его содержимое становится доступно для редактирования пользователю, а...
43534
+34
Описание мета-тегов
В статье представлены все самые встречающеюся мета-теги с примерами и пояснениями их использования.
26659
+4
PHP транслит
PHP функции для перевода текста, ЧПУ, ссылок и имен файлов в транслит.
39884
+10
Загрузка файлов на сервер PHP
В статье приведен пример формы и php-скрипта для безопасной загрузки файлов на сервер, возможные ошибки и рекомендации при работе с данной темой.
72071
+22
Как прочитать SSL сертификат из PHP
SSL сертификат можно получить с помощью контекста потоков (Stream Context), а разобрать его поможет функция...
6318
+6