0

我正在使用此脚本从通用外部网页获取所有图像:

$url = ANY URL HERE;
$html = @file_get_contents($url,false,$context);
$dom = new domDocument;
@$dom->loadHTML($html);
$dom->preserveWhiteSpace = false;
$images = $dom->getElementsByTagName('img');

foreach ($images as $image) {
 echo $image->getAttribute('src');
}

但在某些情况下(图像在“ rel:image_src ”中)

<img src="http://example.com/example.png" rel:image_src="http://example.com/dir/me.jpg"  />

它不起作用。

我能怎么做 ?

4

3 回答 3

2

you could include both:

foreach ($images as $image) {
  echo $image->getAttribute('src');
  echo $image->getAttribute('rel:image_src');
}
于 2013-07-16T11:08:04.593 回答
0

如果您想rel:image_src优先考虑,请检查属性的存在并有选择地使用它:

$url  = ANY URL HERE;
$html = @file_get_contents($url,false,$context);
$dom  = new domDocument;
@$dom->loadHTML($html);
$dom->preserveWhiteSpace = false;
$images = $dom->getElementsByTagName('img');

foreach ($images as $image) {
  if ($image->hasAttribute('rel:image_src')
  {
    echo $image->getAttribute('rel:image_src');
  }
  else
  {
    echo $image->getAttribute('src');
  }

}
于 2013-07-16T11:12:36.853 回答
0

检查节点是否有属性rel:image_src

foreach ($images as $image) {
  if( $image->hasAttribute('rel:image_src') ) {
     echo $image->getAttribute('rel:image_src');
  } else {
     echo $image->getAttribute('src');
  }
}
于 2013-07-16T11:11:33.040 回答