Эта функция заменяет:
Простые кавычки на «ёлочки»
«Минус» между словами на тире (—)
Также заменяет два или три минуса между словами на тире
Убирает пробелы между скобками и словами («( слово )« становится в »(слово)»)
То же самое, но для кавычек
например,
Quote:
Я ""кажется" "что-то"" -- ( забыл )
становится в
Quote:
Я ««кажется» «что-то»» — (забыл)
К сожалению, в регулярных выражениях я не очень сйлён, поэтому могут быть глюки... подскажите, если что.
Код функции:
Code (php):
function tipografika($str) {
$str = preg_replace("/\"(|(.+?))\"/","«\\2»",$str); // Делаем «правильные» кавычки
$str = preg_replace("/»(|(.+?))«/","«\\2»",$str); // Устраняем косяки, которые могут возникнуть благодаря предыдущему выражению
$str = preg_replace("/«(.+?)«(.+?)»(.+?)»/","«\\1»\\2«\\3»",$str); // Опять устраняем косяки =)
$str = preg_replace("/(.+?)\s-\s(.+?)/","\\1 — \2",$str); // Заменяем «минус» между словами на тире
$str = preg_replace("/(.+?)\s--\s(.+?)/","\\1 — \\2",$str); // Заменяем два минуса между словами на тире
$str = preg_replace("/(.+?)\s---\s(.+?)/","\\1 — \\2",$str); // Заменяем три минуса между словами на тире
$str = preg_replace("/\(\s(.+?)(|\s)\)/","(\\1)",$str); // Убираем пробелы между словами и скобками
$str = preg_replace("/«\s(.+?)(|\s)»/","«\\1»",$str); // Убираем пробелы между словами и кавычками
return $str;
}