我有以下问题。我使用curl从服务器下载图像。我自动为图像生成名称并下载了它。一些生成的图像名称不会返回图像。如何知道url是否返回图像?
对不起,我的英语"不好"。
提前感谢!
$content_type = curl_getinfo ( $curl_obj, CURLINFO_CONTENT_TYPE);
http://www.php.net/manual/en/function.curl-getinfo.php
Vytautas的答案是正确的,但不完整。$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点你应该检查以确保返回的数据是特定类型的:
- 文件扩展名
- 内容类型标头
- 文件的幻数
我建议你像以前一样继续将数据流式传输到服务器。要在尝试转换之前进行检查,可以使用finfo文件。
更复杂的方法可能是在例如使用cUrl仅在标头匹配时获取响应时设置Accept
标头。示例:
curl_setopt($cURL,CURLOPT_HTTPHEADER,array (
"Accept: application/json"
));
或者使用CURLINFO_CONTENT_TYPE
,请参阅http://ch.php.net/manual/en/function.curl-setopt.php