【发布时间】:2020-01-05 08:16:56
【问题描述】:
我必须通过 PHP 删除当前网页的 DOM 中的一个元素。下面的代码似乎可以工作,但我无法像以前那样加载页面,因为代码每次都会在无限循环中重新运行。此外,通过加载页面来删除某些内容效率低下,并且会减慢页面加载时间。我能怎么做?感谢您的帮助!
$dom = new DOMDocument();
$dom->load("https://www.example.com/product1/");
$selector = new DOMXPath($dom);
foreach($selector->query('//div[contains(attribute::class, "my-class1")]') as $e ) {
$e->parentNode->removeChild($e);
}
$dom->saveHTML();
}
【问题讨论】:
-
“因为代码每次都会在无限循环中重新运行” //div[@class='my-class1']。
-
您将需要使用
output buffering从current page中删除项目- 将缓冲区加载到DOMDocument实例中,修改DOM,然后刷新缓冲区 -
@Jeto
//div[@class='my-class1']效果很好!