gpt4 book ai didi

php - 用于选择性剥离 HTML 的正则表达式

转载 作者:太空宇宙 更新时间:2023-11-04 15:24:33 25 4
gpt4 key购买 nike

作为练习,我正在尝试使用 PHP 解析一些 HTML,将其输出为纯文本,但我遇到了麻烦。我想删除所有使用 style="display: none;" 隐藏的标签 - 请记住标签可能包含其他属性和样式属性。

我目前的代码是这样的:

$page = preg_replace("#<([a-z]+).*?style=\".*?display:\s*none[^>]*>.*?</\1>#s","",$page);`

它返回 NULLPREG_BACKTRACK_LIMIT_ERROR 的代码。
我试过这个:

$page = preg_replace("#<([a-z]+)[^>]*?style=\"[^\"]*?display:\s*none[^>]*>.*?</\1>#s","",$page);

但现在它只是不替换任何标签。

任何帮助将不胜感激。谢谢!

最佳答案

使用 DOMDocument ,你可以尝试这样的事情:

$doc = new DOMDocument;
$doc->loadHTMLFile("foo.html");
$nodeList = $doc->getElementsByTagName('*');
foreach($nodeList as $node) {
if(strpos(strtolower($node->getAttribute('style')), 'display: none') !== false) {
$doc->removeChild($node);
}
}
$doc->saveHTMLFile("foo.html");

关于php - 用于选择性剥离 HTML 的正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4393129/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com