[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Правильные кавычки
Страницы: 1, 2
segazav
Не работает левая замена кавычки на правильную, а правая заменяется (((

$_POST['text'] = preg_replace("/ \"/", " «", $_POST['text']); //делаем правильные кавычки
$_POST['text'] = preg_replace("/\" /", "» ", $_POST['text']); //делаем правильные кавычки


Как только не пробовал - либо совсем удаляет текст в кавычках, либо не меняет совсем, либо только правую заменяет.
killer8080

$text = preg_replace('#\b"([^"]+)"\b#', '«$1»', $text);

segazav
Не работает huh.gif
Миша
Цитата (segazav @ 9.05.2015 - 02:10)
Не работает левая замена кавычки на правильную, а правая заменяется (((

$_POST['text'] = preg_replace("/ \"/", " «", $_POST['text']); //делаем правильные кавычки


[php]$_POST['text'] = preg_replace("/\"/", "«", $_POST['text']);


А так?

_____________
Принимаю заказы, писать в ЛС
sergeiss
segazav, а вот это http://php.net/manual/ru/function.str-ireplace.php не пробовал?

Цитата
Если не нужны сложные правила поиска/замены, использование этой функции предпочтительнее preg_replace() с модификатором i.


_____________
* Хэлп по PHP
* Описалово по JavaScript
* Хэлп и СУБД для PostgreSQL

* Обучаю PHP, JS, вёрстке. Интерактивно и качественно. За разумные деньги.

* "накапливаю умение телепатии" (С) и "гуглю за ваш счет" (С)

user posted image
segazav
Так работает

$_POST['text'] = preg_replace("/\"/", "«", $_POST['text']);


но все кавычки в одну сторону «

Даже так:

$_POST['text'] = preg_replace("/\"/", "«", $_POST['textl']);
$_POST['text'] = preg_replace("/\" /", "»", $_POST['text']);
Миша
Цитата (segazav @ 9.05.2015 - 14:02)
Так работает

$_POST['text'] = preg_replace("/\"/", "«", $_POST['text']);


но все кавычки в одну сторону «

Даже так:

$_POST['text'] = preg_replace("/\"/", "«", $_POST['textl']);
$_POST['text'] = preg_replace("/\" /", "»", $_POST['text']);

Правильно biggrin.gif они же " ничем не отличаются, поэтому за первый проход так сказать все и заменяются.



_____________
Принимаю заказы, писать в ЛС
Миша
Я низнаю, поищи функцию на php.net / вероятнее нет такой,
Тогда регуляркой начало « конец »

_____________
Принимаю заказы, писать в ЛС
segazav
Так, тоже самое, видимо потому, что все кавычки уже такие «

$_POST['text'] = preg_replace("/\"/", "«", $_POST['textl']);
$_POST['text'] = preg_replace("/\" /", "»", $_POST['text']);


Если только так:

$_POST['text'] = preg_replace("/\"/", "«", $_POST['text']);
$_POST['text'] = preg_replace("/\« /", "» ", $_POST['text']);
segazav
$_POST['text'] = preg_replace("/\"/", "«", $_POST['text']);
$_POST['text'] = preg_replace("/\« /", "» ", $_POST['text']);


Проблема лишь в том, что если закрывающаяся кавычка в конце строки, то она «

Как это исправить?
sergeiss
Цитата (segazav @ 9.05.2015 - 14:48)
Проблема лишь в том, что если закрывающаяся кавычка в конце строки, то она «

Если текст правильно составлен, то перед открывающей кавычкой будет пробел и после закрывающей кавычки будет пробел. Поэтому можно смело использовать str_ireplace для замены "пробел плюс кавычка" и "кавычка плюс пробел" на правильные комбинации и не париться с регулярками.

_____________
* Хэлп по PHP
* Описалово по JavaScript
* Хэлп и СУБД для PostgreSQL

* Обучаю PHP, JS, вёрстке. Интерактивно и качественно. За разумные деньги.

* "накапливаю умение телепатии" (С) и "гуглю за ваш счет" (С)

user posted image
segazav
Ну да, но может быть когда после кавычки идет запятая или точка или конец строки wink.gif
Что тогда?
FatCat
Цитата (segazav @ 9.05.2015 - 14:52)
Ну да, но может быть когда после кавычки идет запятая или точка или конец строки wink.gif
Что тогда?

Первым проходом меняем пробел плюс кавычка на открывающую; вторым проходом все остальные на закрывающие.

_____________
Бесплатному сыру в дырки не заглядывают...
segazav
Может так:

$_POST['text'] = preg_replace("/\"/", "«", $_POST['text']); // делаем правильные кавычки
$_POST['text'] = preg_replace("/\«$/", "»", $_POST['text']); // делаем правильные кавычки
$_POST['text'] = str_replace("« ", "» ", $_POST['text']); // делаем правильные кавычки
$_POST['text'] = str_replace("«, ", "», ", $_POST['text']); // делаем правильные кавычки
$_POST['text'] = str_replace("«. ", "». ", $_POST['text']); // делаем правильные кавычки
$_POST['text'] = str_replace("«! ", "»! ", $_POST['text']); // делаем правильные кавычки
$_POST['text'] = str_replace("«? ", "»? ", $_POST['text']); // делаем правильные кавычки
$_POST['text'] = str_replace("«: ", "»: ", $_POST['text']); // делаем правильные кавычки
$_POST['text'] = str_replace("«; ", "»; ", $_POST['text']); // делаем правильные кавычки
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.