我必须清除一些HTML代码,以删除<style>
标记内的<link>
和<body>
标记。
我已经在使用PHP Tidy进行一些清理,但我没有找到如何使用PHP Tidy删除这些标记。
你有解决方案吗?或者也许是另一个标记清理PHP类...
答案 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解决方案完全无关。