一个api给我发了几个html代码(只是身体的一部分,而不是完整的html),我想和其他人一起更改所有图像src。
我得到并设置属性然后如果我在foreach循环中回显它我看到旧的和新的值但是当我尝试用saveHTML保存它然后转储从api返回的完整html块,我没有看到替换的路径
$page = json_decode($page);
$page = (array) $page->rows;
$page = ($page[0]->_->content);
$dom = new \DOMDocument();
$dom->loadHTML($page);
$tag = $dom->getElementsByTagName('img');
foreach($tag as $t)
{
echo $t->getAttribute('src').'<br'>; //showing old src
$t->setAttribute('src', 'bla');
echo $t->getAttribute('src').'<br'>; //showing new src
}
$dom->saveHTML();
var_dump($page); //nothing is changed
答案 0 :(得分:1)
我的朋友,这不是它的工作方式。
您应该在saveHTML()
的结果中编辑HTML:
$editedHtml = $dom->saveHTML()
var_dump($editedHtml);
现在您应该看到更改过的HTML了。
解释是$page
是与$dom
对象无关的完全不同的对象。
干杯!