递归遍历DOM树并删除不需要的标签?

Tei*_*eiv 3 html php dom

$tags = array(
    "applet" => 1,  
    "script" => 1
);

$html = file_get_contents("test.html");
$dom = new DOMdocument();
@$dom->loadHTML($html);
$xpath = new DOMXPath($dom);
$body = $xpath->query("//body")->item(0);
Run Code Online (Sandbox Code Playgroud)

我是在循环浏览网页的"正文"并删除$ tags数组中列出的所有不需要的标签,但我找不到办法.那我该怎么办呢?

dvb*_*dvb 6

你考虑过HTML Purifier吗?从你自己的html消毒开始只是重新发明轮子,并不容易实现.

此外,黑名单方法也很糟糕,请参阅SO/why-use-a-whitelist-for-html-sanitizing

您可能还有兴趣阅读如何cinfigure允许的标签和属性测试HTML Purifier演示

  • 非常感谢小费.我会改用白名单.哦,祝大家新年快乐:) (2认同)