我有下列问题。我使用curl从服务器下载图像。我自动为图像命名并下载它。某些生成的图像名称不会返回图像。我如何知道网址是否返回图片?
对不起我的“破”英语。
提前感谢!
答案 0 :(得分:3)
$content_type = curl_getinfo ( $curl_obj, CURLINFO_CONTENT_TYPE);
答案 1 :(得分:1)
维陶塔斯的回答是正确的,但不完整。
$url = 'http://test.com/test/test/something';
$c = curl_init($url);
// Here you would want to set more curl settings, such as
// enabling redirection and setting a valid user agent.
curl_exec($c);
$t = curl_getinfo($c, CURLINFO_CONTENT_TYPE);
之后,$t
应该包含mimetype(以及其他一些东西),除非发生错误,此时你得到一个NULL。
也就是说,您应该检查3点以确保返回的数据属于某种类型:
答案 2 :(得分:0)
我建议您像以前一样将数据流式传输到服务器。要在尝试转换之前进行检查,可以使用finfo-file。
更复杂的方法可能是设置Accept
标头,例如使用cUrl仅在标头匹配时获取响应。例如:
curl_setopt($cURL,CURLOPT_HTTPHEADER,array (
"Accept: application/json"
));
或使用CURLINFO_CONTENT_TYPE
,请参阅http://ch.php.net/manual/en/function.curl-setopt.php