kas*_*kka 36 php dom simple-html-dom
我想使用Simple HTML DOM删除文章中的所有图像,这样我就可以轻松地为新闻自动收录器创建一小段文本,但我还没想出如何用它删除元素.
基本上我会这样做
有帮助吗?
Gor*_*don 51
没有专门的方法来删除元素.你只需找到所有的img元素然后再做
$e->outertext = '';
Run Code Online (Sandbox Code Playgroud)
小智 28
当您只删除外部文本时,您将删除HTML内容本身,但如果您对相同的元素执行另一次查找,它将显示在结果中.原因是简单的HTML DOM对象仍然具有元素的内部结构,只是没有它的实际内容.为了真正删除元素,您需要做的只是将HTML作为字符串重新加载到同一个变量中.这样,将在没有删除内容的情况下重新创建对象,并且将在没有它的情况下构建简单的HTML DOM对象.
这是一个示例函数:
public function removeNode($selector)
{
foreach ($this->find($selector) as $node)
{
$node->outertext = '';
}
$this->load($this->save());
}
Run Code Online (Sandbox Code Playgroud)
把这个函数放在simple_html_dom类中,你很好.
Sid*_*Sid 12
我认为你有一些困难,因为你忘了保存(将内部DOM树转储回字符串).
试试这个:
$html = file_get_html("http://example.com");
foreach($html ->find('img') as $item) {
$item->outertext = '';
}
$html->save();
echo $html;
Run Code Online (Sandbox Code Playgroud)
我不知道把这个函数放在哪里,所以我直接把以下内容放在我的代码中:
$html->load($html->save());
Run Code Online (Sandbox Code Playgroud)
它基本上将 for 循环中所做的更改锁定回上面的 html。
| 归档时间: |
|
| 查看次数: |
43127 次 |
| 最近记录: |