【问题标题】:Detect if API url returns image or not [duplicate]检测API url是否返回图像[重复]
【发布时间】:2018-03-18 08:52:18
【问题描述】:

我有 API $url,它应该根据请求返回图像。 它要么返回图像,要么不返回任何内容,然后我收到错误Failed to load resource: server responded with a statuf of 404

您可以想象我在做什么,我正在发送一个带有图书 ISBN 编号的请求,API 检查它是否在数据库中具有 ISBN 的图书封面,如果有,我会在返回的图像中获得图书封面,但是如果不是,我想改用我的本地书本图标图像。

我尝试过这样做

list($width, $height) = getimagesize($url);
echo "Width: ".$width."<br/>";
echo "Height: ".$height."<br/>";

if($width==1 && $height==1){
   echo "<img src='../images/book_cover.png' alt='' class='cover'/>";
}else{
   echo "<img src=$url alt='' class='cover'/>";
}

但由于getimagesize() 不返回FALSE,我收到php 警告消息。

然后我尝试使用

if(!exif_imagetype($url)){
   echo "<img src='../images/book_cover.png' alt='' class='cover'/>";
}else{
   echo "<img src=$url alt='' class='cover'/>";
}

这可行,但我收到警告failed to open stream: HTTP request failed

有什么想法可以解决问题并使其合法化吗?

编辑:

echo "<img src=$url onerror=\"this.onerror=null;this.src='../images/book_cover.png';\" alt='' class='cover'/>";

【问题讨论】:

    标签: php image warnings file-type


    【解决方案1】:

    你应该直接在你的 html 中处理它

    HTML if image is not found

    否则您仍然可以使用 curl 或 file_get_contents 检查 url 是否存在,但这会更慢

    【讨论】:

    • 得到它的工作,简单的解决方案,谢谢队友!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-10-02
    • 2015-07-18
    • 1970-01-01
    • 1970-01-01
    • 2011-08-24
    相关资源
    最近更新 更多