1. 程式人生 > >PHP中cURL的curl_getinfo函式返回的CURLINFO_HTTP_CODE是0

PHP中cURL的curl_getinfo函式返回的CURLINFO_HTTP_CODE是0

分析

在PHP中使用cURL獲取網頁時,可以通過函式curl_getinfo()來獲取http狀態碼。

$httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);

我們期望的狀態碼是200,而且HTTP標準也對其它狀態碼做了一些定義。

總體範圍 已定義類別 類別
100~199 100~101 資訊
200~299 200~206 成功
300~399 300~305 重定向
400~499 400~415 客戶端錯誤
500~599 500~505 服務端錯誤

但是curl_getinfo()

有時候會給我們返回狀態是0的狀態碼,原因如下,

如果你已經連線到伺服器上了,那麼你將會返回一個狀態碼;否則,將會失敗並返回一個0。

所以,如果你連線到www.google.com/lksdfk時,你會收到一個400的狀態碼,如果你連線到google.com,你會收到一個302的狀態碼(如果繼續訪問的話,將會收到200的狀態碼,因為被重定向到了www.google.com.hk),如果你訪問googlecom,你會收到一個0狀態碼,並提示找不到host。

錯誤的詳細原因可以通過函式curl_error()進行查詢。

參考