2012-02-28 53 views
0

我有以下問題。我使用curl從服務器下載圖像。我爲圖像自動生成名稱並下載它。一些生成的圖像名稱不是返回圖像。我如何知道url是否返回圖片?如何知道url是否返回圖片PHP?

對不起,我的「破」英語。

提前致謝!

+0

所以你通過生成一個隨機文件名並向該文件名發出請求來從服務器請求圖像?如果沒有找到圖像,那不會返回404嗎?一小段代碼會澄清很多。 – CodeCaster 2012-02-28 10:48:10

回答

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

+0

使用'Accept'很大程度上取決於遠程服務器和其上的任何應用程序的實現。 – cmbuckley 2012-02-28 10:57:20

+0

嗯,你是對的。 – pduersteler 2012-02-28 11:33:09

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應該(和一些其他的東西一起)包含MIME類型,當錯誤發生時,除了在這一點上,你得到一個NULL。

這就是說,有3個點,你應該檢查,以確保返回的數據是某種類型的:

相關問題