【发布时间】:2016-08-17 14:14:29
【问题描述】:
我的数据库中有这个 html:
<p>some text 1</p>
<img src=\"http://www.example.com/images/some_image_1.jpg\">
<p>some text 2</p>
<p>some text 3</p>
<img src=\"http://www.example.com/images/some_image_2.jpg\">
<p>some text 4</p>
<p>some text 5</p>
<img src=\"http://www.example.com/images/some_image_3.jpg\">
有条件地,我需要删除一些特定的<img> 标签。所以我不想删除所有<img> 标签,而只删除特定的标签。
我已经尝试过了,但它会删除所有<img> 标签,即使我不想这样做:
$dom = new \DOMDocument;
$dom->preserveWhiteSpace = false;
$dom->loadHTML($html);
$nodes = $dom->getElementsByTagName("img");
for($i = 0; $i < $nodes->length; $i++) {
if ($i == 1) {
continue;
}
$image = $nodes->item($i);
$image->parentNode->removeChild($image);
}
return $dom->saveHTML();
有人可以帮我解决这个问题吗?在这个 html 示例中,假设我想删除文本中的第一张和第三张图片,但保留第二张。
另外,我注意到saveHTML() 方法正在将<html><body> 标记添加到我的html 中,我不希望这样。我没有看到任何关闭此功能的选项。那里也有帮助吗?
提前谢谢,我已经坚持了好几个小时了。
【问题讨论】:
标签: php html domdocument