如何从URL获取图像链接

时间:2017-04-30 16:57:51

标签: php html image domdocument file-get-contents

如何使用file_get_contents访问网页并获取其上显示的图片的链接?

在页面https://www.roblox.com/thumbnail/asset?assetId=169454280&thumbnailFormatId=254上,此行代码会显示图像:

<img class='' src='https://t0.rbxcdn.com/5d4449ed656bd92c4d51805ff8b72610' />

我正在尝试使用file_get_contents转到此链接并获取src内的图片链接,但我一直收到此错误:

  

类DOMNodeList的对象无法转换为字符串

$dom = new DOMDocument();
$html = file_get_contents('https://www.roblox.com/thumbnail/asset?assetId=169454280&thumbnailFormatId=254');
$dom->loadHTML($html);
$dom->preserveWhiteSpace = false;
echo $dom->getElementsByTagName('img');

2 个答案:

答案 0 :(得分:2)

您可以使用getAttribute("src"),即:

$dom = new DOMDocument();
$html = file_get_contents('https://www.roblox.com/thumbnail/asset?assetId=169454280&thumbnailFormatId=254');
$dom->loadHTML($html);
$dom->preserveWhiteSpace = false;
$imgs =  $dom->getElementsByTagName('img');
foreach($imgs as $img)
{
    print $img->getAttribute("src");
}

如果页面上有多个图像,您可以使用:

根据OP评论

更新

如果您确定,每页只有一张图片,则可以删除foreach循环并使用:< / p>

print $imgs[0]->getAttribute("src");

答案 1 :(得分:-1)

我讨厌发生这种情况,但有些链接实际上不是图像文件。如果网址未以 .png .gif 等文件扩展名结尾。

(例如。https://example.com/image.png以.png结尾)

如果您发现以文件扩展名结尾的相同图片,可能会修复它。