Tidy это библиотека, разработанная одним из работников W3C для чистки html кода от неправильных тэгов. Tidy в оригинале - библиотека на си, но к счастью - она легко устанавливается как модуль в php, а в php 5 уже включён в дистрибутив.
Tidy незаменима в ситуациях типа
- Показа части статья, когда короткого описания нет, а ставить отдельно блоки, указывающие какая часть статьи идёт "под cut" невозможно, из-за чего приходится обрезать статью на половине со страхом что обрез прийдётся на тэг.
- Клиент как полный чайник копирует содержимое статьи из MS Word, и в WYSIWYG с радостью вносятся могучие тэги офиса. А потом ещё жалуется что невозможно изменить шрифт.
- По-зарез понадобился valid XHTML на сайте, желательно ещё и с красивой разметкой, а в коде - чёрт ногу сломит, что уж говорить о полном анализе мелких недочётов, которые так хочет стандарт (типа обязательное наличие alt в img тэге).
Работать достаточно просто. Создаём объект, даём конфигурацию, согласно документации
$objTidy = new tidy;
$arrConfig = array(
'indent' => true,
'output-xhtml' => true,
'clean' => true
);
$objTidy->parseString($strSource, $config, 'utf8');
$objTidy->cleanRepair();
print_r($objTidy);
В минусы можно отнести нагрузку и медленную скорость, но оно и не мудрено - парсинг скорей всего рекурсивный и создание правильного дерева даже для простых xml структур может занимать уйму ресурсов, что уж говорить про их проверку и исправление.
Одно дело когда статью вводит администратор, другое дело, когда статью вводит анонимный пользователь. Защитой сайта и пользователей от всевозможных XSS занимается html purifier
Комментарии