如果您要擷取錯誤訊息,請確保在關閉目前的 cURL 工作階段之前擷取它,否則錯誤訊息將會被重置為空字串。
(PHP 4 >= 4.0.3, PHP 5, PHP 7, PHP 8)
curl_error — 傳回包含目前工作階段最後一個錯誤的字串
如果沒有發生錯誤,則返回錯誤訊息或 ''
(空字串)。
版本 | 說明 |
---|---|
8.0.0 |
handle 現在需要一個 CurlHandle 實例;先前需要的是 resource。 |
範例 #1 curl_error() 範例
<?php
// 建立一個指向不存在位置的 curl handle
$ch = curl_init('http://404.php.net/');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
if(curl_exec($ch) === false)
{
echo 'Curl 錯誤:' . curl_error($ch);
}
else
{
echo '操作已完成,沒有任何錯誤';
}
// 關閉 handle
curl_close($ch);
?>
為了讓 404 回應實際觸發錯誤,如範例所示,應設定以下選項
curl_setopt($ch,CURLOPT_FAILONERROR,true);
根據 http://curl.haxx.se/libcurl/c/libcurl-errors.html
CURLE_HTTP_RETURNED_ERROR (22)
如果 CURLOPT_FAILONERROR 設定為 TRUE 且 HTTP 伺服器返回的錯誤代碼 >= 400,則會返回此錯誤。(此錯誤代碼先前稱為 CURLE_HTTP_NOT_FOUND。)
如果您正在使用 curl_multi 且發生錯誤,curl_error() 會一直保持空白,直到您呼叫 curl_multi_info_read() 為止。 該函式會「提取」curl 函式庫內的資訊,讓 curl_error() 可以返回有用的字串。
這真的應該要添加到文件中,因為它一點也不明顯。
curl_error 並非 curl_errno 的文字表示形式。
它是一個實際的錯誤*訊息*。
如果您想要錯誤*代碼*的文字表示形式,請參考 curl_strerror。