我使用这个脚本从一个通用的外部网页获取所有图像:
$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" />
它不起作用。
我该怎么办?
您可以同时包含以下两者:
foreach ($images as $image) {
echo $image->getAttribute('src');
echo $image->getAttribute('rel:image_src');
}
检查节点是否具有属性rel:image_src
foreach ($images as $image) {
if( $image->hasAttribute('rel:image_src') ) {
echo $image->getAttribute('rel:image_src');
} else {
echo $image->getAttribute('src');
}
}
如果您希望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');
}
}