Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум Регулярные Выражения

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Замена символов " "
 
 автор: name   (21.07.2006 в 20:27)   письмо автору
 
 

Текст поступает из формы. Подскажите пожалуйста, как можно заменить первый символ " на &laquo, второй " на » и т. д.? Заменить требуется все символы в тексте.

   
 
 автор: cheops   (21.07.2006 в 21:23)   письмо автору
 
   для: name   (21.07.2006 в 20:27)
 

Кавычки всегда согласованы и вложенные случаи не предусмотрены?

   
 
 автор: name   (22.07.2006 в 03:00)   письмо автору
 
   для: cheops   (21.07.2006 в 21:23)
 

А вы не могли бы привести оба случая.

   
 
 автор: cheops   (22.07.2006 в 11:11)   письмо автору
 
   для: name   (22.07.2006 в 03:00)
 

Со вложенными скобками скорее всего ничего не получится, так как скобки одинаковые, посмотите следующий скрипт
<?php
  $text 
"Текст поступает из формы, например, так \"текст в кавычках\". Нужно заменить.";
  
$pattern "|\"([^\"]+)\"|is";
  
$text preg_replace($pattern"&laquo;\\1&raquo;"$text);
  echo 
$text;
?>

   
 
 автор: name   (22.07.2006 в 13:46)   письмо автору
 
   для: cheops   (22.07.2006 в 11:11)
 

Спасибо.

   
 
 автор: Владимир22   (28.07.2006 в 03:29)   письмо автору
 
   для: name   (22.07.2006 в 13:46)
 

Хороший и короткий код, но обнаружил проблему:
если до или после этого "перекавычивания" добавить:
$text== htmlspecialchars($text);
то ничего не получается и вместо кавычек выдаёт знаки &laquo;\\1&raquo;
Получается что надо выбирать: либо безопасность текста, либо красивые кавычки.
Может как-то можно обхитрить этот htmlspecialchars, чтобы всё выводило правильно??

   
 
 автор: cheops   (28.07.2006 в 11:16)   письмо автору
 
   для: Владимир22   (28.07.2006 в 03:29)
 

Нужно просто сообщить функции htmlspecialchars() чтобы она не заменяла кавычки при помощи второго параметра функции
<?php 
  $text 
"Текст поступает из формы, например, так \"текст в кавычках\". Нужно заменить."
  
$text htmlspecialchars($textENT_NOQUOTES);
  
$pattern "|\"([^\"]+)\"|is"
  
$text preg_replace($pattern"&laquo;\\1&raquo;"$text); 
  echo 
$text
?>

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования