Проблемы с РСС и специальными последовательностями.

Started by aff, July 03, 2006, 04:21:53 AM

Previous topic - Next topic

aff

Звиняйте, вторая копия отсюда:
http://www.simplemachines.org/community/index.php?topic=96963.0

Проблемы с РСС
Переодически бывают посты, которые вышибают напрочь всю ленту.
Вот последний пример:
<title>manymanychars..... # 1072;& # 1087;& # 1082;& # 108</title>

То есть специальная последовательность & # 1082; обрезается в конце строки до & # 108 (пробелы поставил я для читаемости).

Получается невалидный ХМЛ с ошибкой
Error on line 62: The character reference must end with the ';' delimiter

Случается довольно регулярно. Как с этим бороться кроме как "перетерпеть" не знаю.

Версия SMF 1.1 RC2



RXL

Столкнулся с похожей проблемой.

Дело в том, что html-entity формата "& # hex-code;" движком не обрабатываются и считаются не одиночными символами, а последовательностями символов.
Это так же негативно сказывается на поиске.

Решил бороться с этим заменой последовательности на соотв. символ.
Основные идеи изложены в статье: http://club.shelek.com/viewart.php?id=271

Пробовал добавить такую перекодировку в Source/QueryString.php в ф-ию cleanRequest(). Эффект странный - то ли работает, то ли нет.
Нахожу в базе сообщение, содержащее entity, вхожу "редактировать пост" и сохраняю, смотрю в базе - перекодировался - значит работает примочка.
Перекодировал непосредственно в базе все сообщения.
Через некоторое время обследую базу на предмет последовательности "& # 104" - есть такие. См. сообщение - все оно состоит из entity.
В общем борьба пока не закончена.

aff

Спасибо :)
Хоть кого-то эта проблема волнует.
Для меня PHP - это темный лес. Пожалуйста, если будет какое-то решение - дайте знать.

Advertisement: