Php Tidy:删除体内的链接和样式标签

时间:2010-06-16 12:46:48

标签: php html tidy

我必须清除一些HTML代码,以删除<style>标记内的<link><body>标记。 我已经在使用PHP Tidy进行一些清理,但我没有找到如何使用PHP Tidy删除这些标记。

你有解决方案吗?或者也许是另一个标记清理PHP类...

2 个答案:

答案 0 :(得分:2)

不知道如何使用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

答案 1 :(得分:0)

Tidy的另一种选择是http://htmlpurifier.org/

  

HTML Purifier符合标准     编写的HTML过滤器库     PHP。 HTML Purifier不仅会删除所有恶意内容     代码(更好地称为XSS)经过全面审核,     安全而宽松的白名单,     它还将确保您的文件     符合标准,只有通过a才能实现     全面了解W3C的规范。


这是一个额外的答案,因为它与DOM解决方案完全无关。