Проблема с htmlspecialchars и Zend_Filter_HtmlEntities заключается в том, что если вы пытаетесь удалить все html-теги (например, «a» и «img» и т. Д.), То вместо их удаления вы получите эту разметку в своем выводе ,
Возьмите комментарии к блогу, например. Если вы используете htmlspecialchars или Zend_Filter_HtmlEntities, в комментарии, где кто-то пытается использовать html для ввода ссылки, вы получите эту разметку, отображаемую при отображении комментария. Но если вы используете strip_tags или Zend_Filter_StripTags, вы в конечном итоге искажаете комментарий, поскольку ни один из них не достаточно умен, чтобы понять, что «<3» не является тегом, а просто удаляет все с «<3» до конца комментария (или до он находит '>').
Было бы хорошо, если бы Zend имел что-то вроде HTMLPurifier, где он фактически проверяет и проверяет ввод перед удалением тегов. Это означает, что такие вещи, как «<3», остаются одни, а такие вещи, как «Awesome Site», становятся «Awesome Site». </p>
Это проблема, которую я пытаюсь обойти, и в данный момент мне кажется, что я собираюсь написать свой собственный класс Zend_Filter, который по сути является оберткой для HTMLPurifier.