Php Tidy: убрать ссылку и теги стиля внутри тела - PullRequest
1 голос
/ 16 июня 2010

Я должен очистить HTML-код, чтобы удалить теги <style> и <link> внутри тега <body>.Я уже использую PHP Tidy для очистки, но я не нашел, как удалить эти теги с помощью PHP Tidy.

У вас есть решение?Или, может быть, другой очиститель разметки PHP класса ...

Ответы [ 2 ]

2 голосов
/ 16 июня 2010

Не знаю, как это сделать с 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.

0 голосов
/ 16 июня 2010

Альтернативой Tidy будет http://htmlpurifier.org/

HTML Purifier - это совместимая со стандартами библиотека HTML-фильтров, написанная на PHP.HTML Purifier не только удалит весь вредоносный код (более известный как XSS) с тщательно проверенным, безопасным, но разрешающим белым списком, но также обеспечит соответствие ваших документов стандартам, чего можно достичь только при полном знании спецификаций W3C.


Сделал это дополнительным ответом, поскольку он совершенно не связан с решением DOM.

...