2014-12-30 99 views
1

我的腳本除了代碼中的網址之外運行良好。我總是得到404。當然,我可以從瀏覽器中獲取圖像。有誰能幫我解決這個問題嗎? PS:其實,我可以使用方法int「questions/6476212」來獲取圖像文件。但是當試圖打開圖像文件時,文件中的內容是一個404頁面而不是圖像。如何從捲曲中獲取圖像

$url = 'https://spthumbnails.5min.com/10368406/518420256_c_570_411.jpg'; 
$ch = curl_init(); 
curl_setopt($ch, CURLOPT_URL, $url); 
curl_setopt($ch, CURLOPT_HEADER, false); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); 
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); 
curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.1 Safari/537.11'); 
$res = curl_exec($ch); 
$rescode = curl_getinfo($ch, CURLINFO_HTTP_CODE); 
curl_close($ch) ; 
echo $res;" 
+0

服務器是否使用cookie驗證請求? –

+0

您是否嘗試過添加: curl_setopt($ ch,CURLOPT_BINARYTRANSFER,1); ,因爲JPG文件傳輸應該在二進制模式下完成? – GiantRobot

+0

我不知道那個:(如何檢查cookie? – weblen

回答

6

您的腳本被正確書寫。我試過並且工作正常,但您需要設置圖像標題才能讓導航器顯示圖像。

例子:

header("Content-Type: image/jpeg"); 

$url = 'https://images.nga.gov/en/web_images/constable.jpg'; 
$ch = curl_init(); 
curl_setopt($ch, CURLOPT_URL, $url); 
curl_setopt($ch, CURLOPT_HEADER, false); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); 
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); 
curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.1 Safari/537.11'); 
$res = curl_exec($ch); 
$rescode = curl_getinfo($ch, CURLINFO_HTTP_CODE); 
curl_close($ch) ; 
echo $res; 

但請注意您的圖片網址下來,這就是爲什麼你得到404錯誤。

Regards

+0

down?嘗試自己並在瀏覽器中打開,url ok。 – Eugen

+0

真的嗎?但是我可以從瀏覽器中獲取圖片 – weblen

+0

是Eugen,已經嘗試過,我有這個錯誤消息「頁面無法顯示」 – manuelbcd