0

在我的项目中,当用户从 登录时Facebook,将保存个人资料图片。这是工作。但是如果没有图像,那么还有一个0 Byte文件正在保存。

如何检查 url 是否包含图像并仅在图像可用时保存

PHP示例代码如下

function DownloadImage($url, $dest){
    $curl = curl_init($url);
    $fp = fopen($dest, 'wb');
    curl_setopt($curl, CURLOPT_FILE, $fp);
    curl_setopt($curl, CURLOPT_HEADER, false);
    curl_setopt($curl, CURLOPT_FOLLOWLOCATION, true);
    curl_exec($curl);   
    curl_close($curl);
    fclose($fp);    
}

try{ 
    $type='large';  
    $social_id='1234';
    DownloadImage('https://graph.facebook.com/'.$social_id.'/picture?type='.$type.'&access_token=[your access token]', $type.'.jpg');


}
catch(Exception $errr){
    echo $errr;
}
4

1 回答 1

2

您可以随时检查 curl 返回的标头信息curl_getinfo()(更多信息请参见 php.net

因此,在您的情况下,您可以curl_getinfo($curl, CURLINFO_CONTENT_LENGTH_DOWNLOAD)查看返回了多少字节。

另外我认为如果找不到图像,facebook 应该返回不同的 HTTP 代码,所以你可以试试curl_getinfo($curl, CURLINFO_HTTP_CODE)。应该是200如果找到图像,404如果没有。

于 2016-09-21T05:42:03.000 回答