我正在使用此脚本从通用外部网页获取所有图片:
$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" />
它不起作用。
我该怎么办?
答案 0 :(得分:2)
你可以同时包括:
foreach ($images as $image) {
echo $image->getAttribute('src');
echo $image->getAttribute('rel:image_src');
}
答案 1 :(得分: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');
}
}
答案 2 :(得分: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');
}
}