即使HTTP響應代碼是404,我也想使用PHP下載URL的內容。file_get_contents
會出錯,我無法使用Google找到答案。我怎樣才能做到這一點?即使返回404,也要下載PHP中的URL的內容
13
A
回答
4
默認情況下,file_get_contents僅返回HTTP 200響應的內容。
With curl you get the headers and the content separately.
隨着PHP 5.0的,你也可以指定一個上下文file_get_contents
,讓你做它不依靠URL(請參閱戈登的答案)。
2
改爲使用cURL。它允許更好的控制,並讓你閱讀任何檢索到的內容和狀態碼。
61
你必須configure the stream wrapper忽略的錯誤:
ignore_errors
boolean
取甚至失敗狀態代碼的內容。默認爲FALSE
換句話說,做
echo file_get_contents(
'http://stackoverflow.com/foo/bar',
false,
stream_context_create(
array(
'http' => array(
'ignore_errors' => true
)
)
)
);
,你會得到404頁。
如果你想這是對HTTP流的默認行爲,使用HTTP流包裝將使用這些設置,然後,例如使用
stream_context_set_default(
array('http' => array(
'ignore_errors' => true)
)
);
任何調用你可以簡單地做
echo file_get_contents('http://stackoverflow.com/foo/bar');
如果你也想獲得response header,只是做
print_r($http_response_header);
電話後。每次使用http流包裝器調用後,該變量將被重新填充(重新填充)。
0
步驟1:檢查返回代碼: $content = file_get_contents("websitelink"); if($content === FALSE) { // handle error here... }
步驟2:$content = @file_get_contents($site);
相關問題
- 1. 即使從按下的主頁按鈕返回到應用程序,也要刷新標籤內容
- 2. WebStorm使用下載引導返回404
- 3. 即使發送了HTTP 200,urllib2.urlopen(req)也會返回404
- 4. 檢查當前URL,即使有URL參數也返回true
- 5. 即使同一個URL返回內容,Jquery AJAX也會返回錯誤。這是爲什麼?
- 6. 即使404也能解析?
- 7. 安卓:從URL下載內容返回MP3文件
- 8. 即使POST返回200,在webview中也需要「Authorization Required」
- 9. 即使在sql中返回空表時也要計數
- 10. 使用python boto下載AWS S3文件即使文件存在也會返回404
- 11. 即使存在下一行,db2_fetch_assoc()也不會返回下一行
- 12. 控制器返回404錯誤,即使它的返回結果
- 13. HttpWebRequest的Atom的URL返回HTML內容
- 14. 內容類型json返回http 404
- 15. 網站返回錯誤404與內容
- 16. Laravel - 即使URL正確,Guzzle也不返回任何數據
- 17. PHP的file_get_contents返回404
- 18. SQLITE3查詢不會返回我想要的內容在PHP內
- 19. 即使是dir,is_dir也會返回false?
- 20. 即使內容有內容,內部div也有0x0大小
- 21. Meteor.js:.find()即使數據庫不爲空也不會返回任何內容
- 22. PHP file_get_contents返回404
- 23. 下載cgi網頁的url內容
- 24. 在指定的URL下載內容
- 25. SQL:即使沒有匹配,也要返回一些值
- 26. Oracle SQL:即使特定值不存在也要返回記錄
- 27. 使用wget調用URL並根據URL的內容返回ERRORLEVEL
- 28. 檢測URL並從中下載內容
- 29. 從需要cookie的網站自動下載URL內容
- 30. Magento的REST API的Oauth URL返回404
有趣的方法:通過將一個錯誤控制操作員(即
@
)在呼叫的前向的file_get_contents()抑制警告 - 但是你能否告訴你是否有錯誤或成功的迴應? – sagi@sagi響應代碼將在'$ http_reponse_header'中 – Gordon
+1 Gordon是正確的,變量$ http_response_header包含它在罐子上所描述的內容,這明顯包括狀態碼。 –