|
|
|
| Помогите с таким выраженнием. Суть его в том, чтобы менять обычные кавычки на русские.
Из-за того, что русские кавычки и левые, и правые, надо делать замену с пробелом. Но НИГДЕ не нашёл как обозначается пробел в php.
Вот код, но не работает:
$pic = "Фирма \"Панасоник\" представляет";
$pic = eregi_replace(" \""," «",$pic);
$pic = eregi_replace("\" ","» ",$pic);
echo "$pic";
|
Надо, чтобы из "Панасоник" сделало «Панасоник»
И так не работает:
$pic = "Фирма \"Панасоник\" представляет";
$pic = eregi_replace("\s\"","\s«",$pic);
$pic = eregi_replace("\"\s","»\s",$pic);
echo "$pic";
|
| |
|
|
|
|
|
|
|
для: Владимир22
(18.06.2006 в 03:07)
| | просто ставим вот такую палочку "\" перед пробелом )
Получается
%) | |
|
|
|
|
|
|
|
для: Бог Зайцев
(18.06.2006 в 03:56)
| |
<?php
$pic = "Фирма \"Панасоник\" представляет";
$pic = eregi_replace("\ \"","\ «",$pic);
$pic = eregi_replace("\"\ ","»\ ",$pic);
echo "$pic";
?>
|
Кавычки стали меняться, но теперь отображаются эти палочки:
Фирма\ «Панасоник»\ представляет ??? Как можно их убрать? | |
|
|
|
|
|
|
|
для: Владимир22
(18.06.2006 в 06:47)
| | Убирай их первым делом из переменной %)
| |
|
|
|
|
|
|
|
для: Бог Зайцев
(18.06.2006 в 06:57)
| |
<?php
$pic = "Фирма \"Панасоник\" представляет";
$pic = eregi_replace("\ \""," « ",$pic);
$pic = eregi_replace("\"\ "," » ",$pic);
echo "$pic";
?>
|
| |
|
|
|
|
|
|
|
для: xexe
(18.06.2006 в 13:24)
| | Небольшая корректировка - после правой кавычки » оказывается может идти не только пробел, но и знаки препинания (точка, запятая, двоеточие и ит.п.).
Как в этой части кода можно это решить? (Если вставить точку или \d"\w" - пишет ошибка).
$pic = eregi_replace("\"\ "," » ",$pic); | |
|
|
|
|
|
|
|
для: Владимир22
(18.06.2006 в 15:03)
| | вот так: (\.|\,|\:|\;) | |
|
|
|
|
|
|
|
для: NFR
(18.06.2006 в 15:39)
| | Всем спасибо.
Вот написал функцию замены неудобных для php кавычек на русские кавычки (литературный вариант). Короче не получается.
<?php
################# ЗАМЕНА КАВЫЧЕК НА РУССКИЙ ВАРИАНТ #################
function russian_kavishki ($data) {
$data = eregi_replace("\ \""," «",$data); //пробел и левая кавычка
$data = eregi_replace("[(]\"","(«",$data); //левая откр.скобка и кавычка
$data = eregi_replace("[-]\"","- «",$data); //дефис и левая кавычка
$data = eregi_replace("[.]\"",". «",$data); //точка и левая кавычка
$data = eregi_replace("[,]\"",", «",$data); //запятая и левая кавычка
$data = eregi_replace("[:]\"",": «",$data); //двоеточие и левая кавычка
$data = eregi_replace("[;]\"","; «",$data); //точка с зап. и левая кавычка
$data = eregi_replace("[/]\"","/«",$data); //слеш и левая кавычка
////////////////////////////////////////////////////////////////////
$data = eregi_replace("\"\ ","» ",$data); //правая кавычка и пробел
$data = eregi_replace("\"[.]","».",$data); //правая кавычка и точка
$data = eregi_replace("\"[,]","»,",$data); //правая кавычка и запятая
$data = eregi_replace("\"[:]","»:",$data); //правая кавычка и двоеточие
$data = eregi_replace("\"[;]","»;",$data); //правая кавычка и точка с зап.
$data = eregi_replace("\"[!]","»!",$data); //правая кавычка и воскл. знак
$data = eregi_replace("\"[?]","»?",$data); //правая кавычка и вопр. знак
$data = eregi_replace("\"[)]","»)",$data); //правая кавычка и закр. скобка
$data = eregi_replace("\"[-]","» -",$data); //правая кавычка и дефис
$data = eregi_replace("\"[/]","»/",$data); //правая кавычка и слеш
}
##################################
$pic = "Пример замены \"неудобных кавычек\" на правильные русские кавычки";
russian_kavishki (&$pic);
echo "$pic";
?>
|
| |
|
|
|
|
|
|
|
для: Владимир22
(18.06.2006 в 16:30)
| | Как-то громоздко получилось )
Сократил немношко ))
<?php
function russian_kavishki ($data) {
$data=stripslashes($data);
$data = preg_replace('/(^|[\s\(\[\-\.\,\:\;\/])"(\S)/', '$1«$2', $data); // Я не знаю, в каком страшном сне лингвиста Вы услышали информацию о том, что перед кавычками можно ставить что-то кроме открывающих скобочек. Для особо грамотных добавил все варианты из Вашего списка.
$data = eregi_replace("\"","»",$data); // Мне что-то подсказало, что если все открывающие кавычки уже заменили, значит кроме как закрывающим, больше оставаться некому, т.к. других вроде не бывает %)
}
$pic = "Пример замены: \"Неудобных кавычек\" на правильные русские кавычки";
russian_kavishki (&$pic);
echo "$pic";
|
?> | |
|
|
|
|
|
|
|
для: Бог Зайцев
(18.06.2006 в 17:45)
| | Некоторые символы перед кавычками обозначены для того, чтобы "окавычивать" наверняка, если кто-то забыл поставить пробел после знаков препинания. В практике текстов такие случаи встречаются довольно часто, пример:
объекты:«Бронетёмкин Поносец» и «байкодром Космодур».
КРоме того перед скобками могут стоять теги (типа,<b><i>...).
По этой причине и пришлось пойти на увеличение кода. | |
|
|
|
|
|
|
|
для: Владимир22
(18.06.2006 в 19:54)
| | Дык я сжал его немножко )) Функционал остался тот же ) | |
|
|
|
|
|
|
|
для: Бог Зайцев
(18.06.2006 в 19:59)
| | Если сразу за правой скобкой идут любые знаки препинания - ставит левую кавычку! | |
|
|
|