我有html格式的图片。我将其解析为DOMDocument并开始使用它...
$doc = new DOMDocument();
$doc->loadHTML($article_header);
$imgs = $doc->getElementsByTagName('img');
foreach ($imgs as $img) {
$container = $img->parentNode;
if ($container->tagName != "a") {
$image_inside=utf8_decode($img->nodeValue);
echo "3".$image_inside;
die;
}
}
这段代码运行良好,第3行得到图像。第6行理解这个"img“标记上面没有"a”标记,第8行必须打印出我的初始图像。但问题是我只看到"3“,没有图片标签等等。
我检查了元素,但什么也没有。只是"3“出来了。为什么我不能打印图像?
发布于 2011-06-12 18:40:58
您可以使用:
DOMDocument::saveXML($img);
来自PHP Documetation的saveXML()。
$doc = new DOMDocument();
$doc->loadHTML($article_header);
$imgs = $doc->getElementsByTagName('img');
foreach ($imgs as $img) {
$container = $img->parentNode;
if ($container->tagName != "a") {
echo utf8_decode($doc->saveXML($img));
die;
}
}
如果你使用的是PHP5.3.6,你可以使用(来自How to return outer html of DOMDocument?)
$doc->saveHtml($img);
请注意链接问题中提到的注意事项:
(...)使用saveXml(),但这会创建符合XML的标记。在使用
<a>(<img>)
元素的情况下,这应该不是问题。
https://stackoverflow.com/questions/6321481
复制相似问题