0

このスクリプトを使用して、一般的な外部 Web ページからすべての画像を取得しています。

$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

両方を含めることができます:

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 に答える