我怎么知道url是否返回PHP图像?

时间:2012-02-28 10:38:48

标签: php image curl downloading

我有下列问题。我使用curl从服务器下载图像。我自动为图像命名并下载它。某些生成的图像名称不会返回图像。我如何知道网址是否返回图片?

对不起我的“破”英语。

提前感谢!

3 个答案:

答案 0 :(得分:3)

$content_type = curl_getinfo ( $curl_obj, CURLINFO_CONTENT_TYPE);

http://www.php.net/manual/en/function.curl-getinfo.php

答案 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