如何知道url是否返回图像PHP


How do I know if a url returns an image PHP?

我有以下问题。我使用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