我想使用PHP DOMDocument在<body></body>
内追加<img src="" alt="" >
。需要使用PHP DOMDocument添加HTML图像的帮助
下面是代码:
$testcode ='<!DOCTYPE html><html><head><title></title></head><body></body></html>';
$dom = new DOMDocument;
$dom->loadHTML($testcode);
$img_tag = $dom->createDocumentFragment();
$img_tag->appendXML('<img src="http://www.somesite.com/" alt="" >');
$body = $dom->getElementsByTagName('body');
foreach($body as $node) {
$node->appendChild($img_tag);
}
echo $dom->saveHTML();
我得到这个错误:
Message: DOMNode::appendChild(): Document Fragment is empty
但很少有人实验后,我想通了,它期待的结束标记。所以这个代码工作正常:
<img src="http://www.somesite.com/" alt="" ></img>
最后附加标签看起来不错。它会自动删除结束标签。
<img src="http://www.somesite.com/" alt="" >
问题:为什么我们必须为此使用闭合标签?它并不那么明显。
另一个问题: 添加URL参数会触发上述相同的错误。
<img src="http://www.somesite.com/?v=1¶m=4" alt="" >
再次经过几次试验后,当URL被编码时它的工作正常。它再次不是那么明显。
问题:如何以简单的方式添加图像标签,而无需执行上述操作。
其实我正在写邮件应用程序,我只是想在最后插入谷歌分析电子邮件开放跟踪代码。例如:
<img src="http://www.google-analytics.com/collect?v=1&t=event" alt="" >
编码网址的问题是它没有跟踪任何内容。
在此先感谢!
“htmlentities”确实解决了这个问题。谢谢! – Laraveldeep