3

我基本上想使用 DOMDocument 获取任何网站中的所有图像。但是由于某些我还不知道的原因,我什至无法加载我的 html。

$url="http://<any_url_here>/";
$dom = new DOMDocument();
@$dom->loadHTML($url); //i have also tried removing @
$dom->preserveWhiteSpace = false;
$dom->saveHTML();
$images = $dom->getElementsByTagName('img');
foreach ($images as $image) 
{
echo $image->getAttribute('src');
}

发生的事情是什么都没有打印出来。还是我对代码做错了什么?

4

1 回答 1

15

您没有得到结果,因为 $dom->loadHTML() 需要 html。你给它一个url,你首先需要得到你要解析的页面的html。您可以为此使用 file_get_contents() 。

我在我的图像抓取类中使用了它。对我来说很好。

$html = file_get_contents('http://www.google.com/');
$dom = new domDocument;
$dom->loadHTML($html);
$dom->preserveWhiteSpace = false;
$images = $dom->getElementsByTagName('img');
foreach ($images as $image) {
  echo $image->getAttribute('src');
}
于 2013-04-09T07:29:36.727 回答