【问题标题】:How to get image link from URL如何从 URL 获取图片链接
【发布时间】:2017-04-30 16:57:51
【问题描述】:

如何使用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');

【问题讨论】:

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


    【解决方案1】:

    你可以使用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 cmets:

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

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

    【讨论】:

    • 我已经循环数组来解决问题,感谢您指出。
    • 感谢您的回答。页面上只会有一张图片,我可以确认总会有一张
    • 酷,我删除了我的重复投票,因为你的回答是完整的
    • @TheCodesee 我将发布更新代码以获取一张图片。
    • @PedroLobito 我收到此错误:Fatal error : Cannot use object of type DOMNodeList as array
    【解决方案2】:

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

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

    如果您发现以文件扩展名结尾的相同图像,这可能会解决它。

    【讨论】:

      猜你喜欢
      • 2021-04-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-03-22
      • 2010-11-16
      • 2014-08-04
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多