Да точно так: нужно использовать htmlspecialchars_decode(), так как при выводе контента должны быть не примитивы (по крайней мере в тэге href=), а спецсимволы.
Спасибо всем, кто отозвался на мою проблему и участвовал в обсуждении.
Проблема решена с помощью двух операторов:
<code>
1. $nnews=str_replace('&#тридцать четыре;','"',$row['nnews']);
2. $nnews=htmlspecialchars_decode($nnews, ENT_QUOTES);
</code>
Редактор CKeditor (раньше назывался FCKeditor) в конце сеанса редактирования заменяет двойную кавычку на примитив "
К редактору претензий нет.
Записываем в базу текст с примитивом двойной кавычки "
Перед выводом контента извлекаем его из базы и заменяем примитив " на примитив " потому что функция htmlspecialchars_decode() распознаёт именно этот примитив. Далее применяем эту самую функцию htmlspecialchars_decode(), которая заменяет примитивы на спец.символы. Тогда браузер отображает всё как надо.
Можно обойтись одним оператором и преобразовать только двойную кавычку, а остальные спец.символы оставить как примитивы:
<code>
1. $nnews=.str_replace('&#тридцать четыре;','"',$row['nnews']);
</code>
Но это как-то некрасиво и наверно чревато в дальнейшем неприятностями (Отредактировано автором: 07 Июня, 2015 - 18:57:14)
|