HTMLPurifier: как избежать неработающих тегов вместо удаления?

Я использую HTMLPurifier для очистки ввода сообщения, но я хочу, чтобы он удалял (кодирование html) все неработающие теги или подозрительные символы. вместо полного их удаления. Я просмотрел его документы и этот сайт, но безуспешно. Все же надеюсь, что я что-то упустил.

Открывающий тег больше всего раздражает. Если кто-то пытается опубликовать формулу или сравнение, пишет «param1‹param2» и не ставит пробел между ними, очиститель воспринимает это как неправильное открытие тега и полностью отбрасывает все с правой стороны.

Я использую htmlspecialchars внутри тегов [code], но я хочу разрешить некоторые html снаружи и не могу кодировать все. Вот почему я фильтрую его с помощью HTMLPurifier. Ваш совет будет оценен.


person Samurai Girl    schedule 06.02.2012    source источник


Ответы (1)


Попробуйте %Core.AggressivelyFixLt или используйте %Core.LexerImpl, установленный на DirectLex. Я не знаю навскидку, сработает ли это, может и нет.

Частичным решением является установка %Core.EscapeInvalidTags; но это довольно несовершенное исправление, и оно может исказить некоторый текст.

person Edward Z. Yang    schedule 06.02.2012
comment
Я был приятно удивлен, что именно Вы ответили на мой вопрос :) Ваш htmlpurifier отлично справляется со своей задачей, но, к сожалению, эти параметры конфига не решают мою задачу. Я пришел к выводу, что я не должен смешивать html и контент таким образом и либо использовать редактор с переключателем предпросмотра/html, либо придерживаться bbcodes и удалить весь html. - person Samurai Girl; 07.02.2012