我需要做同样的事情:
$tags2 = $doc->getElementsByTagName('img');
$mybody = $doc->getElementsByTagName('body');
//if there's a body tag
foreach ($mybody as $bod){
//loop through each img element
foreach ($tags2 as $tag) {
echo '<img src=' . $tag->getAttribute('src') . '/>';
echo "<br/>" . $tag->getAttribute('href') ;
}
}
这是上下文:
$str = file_get_contents('http://somewebsite.html');
$doc = new DOMDocument();
@$doc->loadHTML('<?xml encoding="UTF-8">' . $str);
$tidy = new tidy();
$tidy->parseFile($str);
$tidy->cleanRepair();
if(!empty($tidy->errorBuffer)) {
echo "The following errors or warnings occured:\n";
echo $tidy->errorBuffer;
}
else {
$str = $tidy;
}
$tags2 = $doc->getElementsByTagName('img');
$mybody = $doc->getElementsByTagName('body');
foreach ($mybody as $bod){
foreach ($tags2 as $tag) {
echo '<img src=' . $tag->getAttribute('src') . '/>';
echo "<br/>" . $tag->getAttribute('href') ;
}
}
^ 输出页面、标题、侧边栏等中的所有图像以及正文中的图像。我只想要身体中的图像。我尝试了一些我在这里看到的使用递归的其他示例,但它们是为了获取样式或段落标签,我无法让它们正确检索图像标签和图像 src 属性。
拥有body标签后,如何对body中的任何图像进行内循环?
谢谢你。