以下是準備好貼上到 ini 樣式檔案中的回應碼。可用於提供更具描述性的訊息,對應於 curl_getinfo() 返回的陣列的 'http_code' 索引。
這些取自 W3C 的 HTTP/1.1:狀態碼定義,網址如下:
http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html
[資訊 1xx]
100="繼續"
101="正在切換通訊協定"
[成功 2xx]
200="正常"
201="已建立"
202="已接受"
203="非授權資訊"
204="無內容"
205="重設內容"
206="部分內容"
[重新導向 3xx]
300="多重選擇"
301="永久移動"
302="已找到"
303="查看其他"
304="未修改"
305="使用代理伺服器"
306="(未使用)"
307="暫時重新導向"
[用戶端錯誤 4xx]
400="錯誤的請求"
401="未經授權"
402="需要付款"
403="禁止"
404="找不到"
405="不允許的方法"
406="不可接受"
407="需要代理伺服器驗證"
408="請求逾時"
409="衝突"
410="已刪除"
411="需要長度"
412="前提條件失敗"
413="請求實體過大"
414="請求 URI 過長"
415="不支援的媒體類型"
416="請求的範圍不滿足"
417="期望失敗"
[伺服器錯誤 5xx]
500="內部伺服器錯誤"
501="未實作"
502="閘道器錯誤"
503="服務無法使用"
504="閘道器逾時"
505="不支援的 HTTP 版本"
以及一個使用範例
<?php
$ch = curl_init(); // 建立 cURL 句柄 (ch)
if (!$ch) {
die("無法初始化 cURL 句柄");
}
// 設定一些 cURL 選項
$ret = curl_setopt($ch, CURLOPT_URL, "http://mail.yahoo.com");
$ret = curl_setopt($ch, CURLOPT_HEADER, 1);
$ret = curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
$ret = curl_setopt($ch, CURLOPT_RETURNTRANSFER, 0);
$ret = curl_setopt($ch, CURLOPT_TIMEOUT, 30);
// 執行
$ret = curl_exec($ch);
if (empty($ret)) {
// 發生某種錯誤
die(curl_error($ch));
curl_close($ch); // 關閉 cURL 處理器
} else {
$info = curl_getinfo($ch);
curl_close($ch); // 關閉 cURL 處理器
if (empty($info['http_code'])) {
die("未傳回 HTTP 狀態碼");
} else {
// 載入 HTTP 狀態碼
$http_codes = parse_ini_file("path/to/the/ini/file/I/pasted/above");
// 顯示結果
echo "伺服器回應:<br />";
echo $info['http_code'] . " " . $http_codes[$info['http_code']];
}
}
?>