1

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

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

4

2 回答 2

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.

于 2010-06-16T12:55:45.303 回答
0

Tidy 的替代方案是http://htmlpurifier.org/

HTML Purifier 是一个用 PHP 编写的符合标准的 HTML 过滤器库。HTML Purifier 不仅会使用经过全面审核、安全且允许的白名单删除所有恶意代码(更广为人知的 XSS),它还将确保您的文档符合标准,这只有通过全面了解 W3C 规范才能实现。


将此作为附加答案,因为它与 DOM 解决方案完全无关。

于 2010-06-16T13:22:16.340 回答