Замена кавычек на «ёлочки» PHP

Для форматирования текста иногда требуется заменить все кавычки в тексте на французские «ёлочки», сделать это можно с помощью PHP-функции:

function replace_quotes($text)
{
	$text = htmlspecialchars_decode($text, ENT_QUOTES);
	$text = str_replace(array('«', '»'), '"', $text);
	return preg_replace_callback('/(([\"]{2,})|(?![^\W])(\"))|([^\s][\"]+(?![\w]))/u', 'replace_quotes_callback', $text);
}

function replace_quotes_callback($matches)
{
	if (count($matches) == 3) {
		return '«»';
	} elseif (!empty($matches[1])) {
		return str_replace('"', '«', $matches[1]);
	} else { 
		return str_replace('"', '»', $matches[4]);
	}
}
PHP

Использование

$text = '
	"В чащах юга жил бы цитрус?"
	"В чащах юга" жил бы "цитрус"!
	"В чащах юга жил бы "цитрус"?
	"В" чащах юга жил бы цитрус?"
';

echo replace_quotes($text);
PHP

Результат

«В чащах юга жил бы цитрус?»
«В чащах юга» жил бы «цитрус»!
«В чащах юга жил бы «цитрус»?
«В» чащах юга жил бы цитрус?»
20.08.2019, обновлено 15.10.2019
Предыдущая запись Как выделить фразы в тексте
Следующая запись Верстка списка с отточием

Комментарии

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

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

PHP транслит
PHP функции для перевода текста, ЧПУ, ссылок и имен файлов в транслит.
6747
+4
Работа с файлами и директориями в PHP
Набор PHP функций для работы с файлами и директориями, получение списка файлов в папке, безопасное сохранение файлов.
9698
0
Как дописать стили в атрибут style тегов HTML через PHP
Данный вопрос возникает при верстке писем т.к. стили прописанные в head в почтовых сервисах и программах не работают, а...
6155
+2
Генерация счета на оплату PDF PHP
С помощью расширения dompdf можно легко сформировать PDF файл. По сути, dompdf - это конвертер HTML в PDF который...
22952
+13
Шорткоды на регулярных выражениях
Часто на сайтах возникает необходимость вставлять в тексты страниц информационные блоки - баннеры, телефоны и т.д. Как...
2273
+2
Удаление регулярными выражениями в PHP
Примеры регулярных выражений для удаления данных из текста.
14156
+3