2012-01-11 30 views
0

有時HTTP 404來自響應標頭 - 可能會有響應內容(通常是自定義錯誤404頁面),或者Google.com瀏覽器中的第503頁將顯示驗證碼,讓用戶寫信。如何在接收503或404標頭時獲取內容

Google Error Page http://goohackle.com/imgs/google_error.jpg

如果我訪問了404頁的瀏覽器,它只會加載自定義錯誤的404頁的內容。 但在PHP中,cURL並沒有顯示與瀏覽器相同的內容。

當頁頭返回404或503頁面時,我可以使用cURL來獲取內容嗎?

例如代碼創建頁面來顯示www.example.com/show503.php

header('HTTP/1.1 503 Service Temporarily Unavailable'); 
header('Status: 503 Service Temporarily Unavailable'); 
header('Retry-After: 7200'); // in seconds 
print "This message will show only browser"; 

503錯誤,當我捲曲,使用此代碼www.example.com/show503.php

$ch = curl_init('www.example.com/show503.php'); 
$ret = curl_exec($ch); 
curl_close($ch); 
var_dump($ret); 

它獲得NULL值無法獲取內容「此消息將只顯示瀏覽器」。

+0

你可以提供你的PHP代碼? – Nazariy 2012-01-11 06:07:35

+0

我已經添加了無法獲取503的內容的示例代碼 – 2012-01-11 07:29:07

回答

3

你沒有設置CURLOPT_RETURNTRANSFER,所以你不會得到任何東西。

這應該工作:

$ch = curl_init('www.example.com/show503.php'); 
curl_setopt($ch ,CURLOPT_RETURNTRANSFER,true); 
$ret = curl_exec($ch); 
curl_close($ch); 
var_dump($ret);