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

Форум PHP

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

 

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

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

тема: Как заменить " на кавычку '
 
 автор: neogod   (05.11.2007 в 16:31)   письмо автору
 
 

У меня такая проблемка. В базе данных сайта с текстами вместо кавычки ' стоит "
Например I'll -> I"ll
как сделать так, чтобы при обработке

$text = nl2br(htmlspecialchars(stripslashes($row['text'])));

" замянялось на кавычку '

   
 
 автор: Unkind   (05.11.2007 в 16:36)   письмо автору
 
   для: neogod   (05.11.2007 в 16:31)
 

' - не кавычка вообще-то, а апостроф. " - это "

<?php
$string 
'"Tom & Jerry"';
$string htmlspecialchars($stringNO_QUOTES); //"Tom &amp; Jerry"
?>

   
 
 автор: champion   (05.11.2007 в 16:39)   письмо автору
 
   для: neogod   (05.11.2007 в 16:31)
 

дописать ещё эту строку.
$text = str_replace ("&quot;", "'", $text);

   
 
 автор: neogod   (05.11.2007 в 16:55)   письмо автору
 
   для: champion   (05.11.2007 в 16:39)
 

не помогает

   
 
 автор: sim5   (05.11.2007 в 17:12)   письмо автору
 
   для: neogod   (05.11.2007 в 16:55)
 

А что у вас получается в строке после stripslashes($row['text'])?

   
 
 автор: neogod   (05.11.2007 в 17:59)   письмо автору
 
   для: sim5   (05.11.2007 в 17:12)
 

А что должно получаться?

   
 
 автор: sim5   (05.11.2007 в 18:00)   письмо автору
 
   для: neogod   (05.11.2007 в 17:59)
 

Да вот хотелось бы это узнать как раз от вас.

   
 
 автор: kasmanaft   (05.11.2007 в 18:43)   письмо автору
 
   для: neogod   (05.11.2007 в 16:31)
 

Используйте сначала html_entity_decode(), потом опять htmlspecialchars().. Только смысла в этом будет...

   
 
 автор: neogod   (05.11.2007 в 19:36)   письмо автору
 
   для: kasmanaft   (05.11.2007 в 18:43)
 

помогло. Ура.
$text = nl2br(html_entity_decode(stripslashes($row['text'])));
результат:

He didn"t notice that the lights have changed

А надо вместо кавычки " апостроф '

Что делать?

   
 
 автор: kasmanaft   (05.11.2007 в 19:46)   письмо автору
 
   для: neogod   (05.11.2007 в 19:36)
 

Откуда у Вас в БД взялся такой текст? Перед помещением туда, его обработали htmlspecialchars() ? В таком случае, при выводе повторно использовать htmlspecialchars() смысла нет.. Использовать только html_entity_decode() - дыра в безопасности.

Попробуйте
$text = str_replace("&quot;", "&#039;", $text);
При этом не применять htmlspecialchars() (если перед помещением текста в БД htmlspecialchars применяли!!!)

UPD а вообще, надо бы сначала привести данные к нормальному виду и заменить кавычки:
$text = html_entity_decode($row['text']);
$text = str_replace("\"", "'", $text);
// при выводе использовать htmlspecialchars()
echo nl2br(htmlspecialchars($text, ENT_QUOTES));

   
 
 автор: neogod   (05.11.2007 в 19:54)   письмо автору
 
   для: kasmanaft   (05.11.2007 в 19:46)
 

Вот теперь все в поряде:

$text = nl2br(stripslashes($row['text']));
$text = str_replace("&quot;", "&#039;", $text);

'Cause if I keep on movin'

Ура-а-а-а-а.

kasmanaft красавец.
напиши свой номер icq

   
 
 автор: kasmanaft   (06.11.2007 в 05:35)   письмо автору
 
   для: neogod   (05.11.2007 в 19:54)
 

Номер есть в профиле, но меня там бывает о-очень редко :)

   
Rambler's Top100
вверх

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