Я должен очистить HTML-код, чтобы удалить теги <style>
и <link>
внутри <body>
. Я уже использую PHP Tidy для очистки, но не нашел, как удалить теги с помощью PHP Tidy.
У тебя есть решение ? Или, возможно, другой класс очистки PHP-класса …
Не знаю, как это сделать с Tidy, но вы можете использовать DOM
$dom = new DOMDocument; // init new DOMDocument $dom->loadHTML($html); // load HTML into it $xpath = new DOMXPath($dom); // create a new XPath $nodes = $xpath->query('//body/style'); // Find all style elements in body tag foreach($nodes as $node) { // Iterate over found elements $node->parentNode->removeChild($node); // Remove complete style node } echo $dom->saveHTML(); // output cleaned HTML
Для элементов <link>
настройте Xpath на //body/link
.
Альтернативой Tidy будет http://htmlpurifier.org/
HTML Purifier – это стандартная библиотека фильтров HTML, написанная на PHP. HTML-очиститель не только удалит весь вредоносный код (более известный как XSS) с тщательно проверенным, безопасным, но и разрешенным «белым списком», он также гарантирует, что ваши документы совместимы со стандартами, что только достижимо с полным знанием спецификаций W3C.
Сделал это дополнительным ответом, так как он полностью не связан с решением DOM.