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

Замена кавычек на «ёлочки» 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
2432
Предыдущая запись Как выделить фразы в тексте
Следующая запись Верстка списка с отточием

Комментарии

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

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

Работа с файлами и директориями в PHP
Набор PHP функций для работы с файлами и директориями, получение списка файлов в папке, безопасное сохранение файлов.
12993
-1
Обрезка текста для анонса
В случаях где анонсы не заполнены, сформировать и вывести их можно несколькими способами...
3786
+1
Генерация случайных буквенно-цифровых кодов в PHP
Несколько примеров, как сгенерировать случайные последовательности численных и буквенных строк заданной длины и...
244
+1
Как дописать стили в атрибут style тегов HTML через PHP
Данный вопрос возникает при верстке писем т.к. стили прописанные в head в почтовых сервисах и программах не работают, а...
8061
+2
PHP транслит
PHP функции для перевода текста, ЧПУ, ссылок и имен файлов в транслит.
11026
+4
Генерация паролей в PHP
В PHP есть несколько функций для генерации случайного числа, это rand(), mt_rand() и random_int().
5741
+4