PHP Conference Japan 2024

curl_error

(PHP 4 >= 4.0.3, PHP 5, PHP 7, PHP 8)

curl_error傳回包含目前工作階段最後一個錯誤的字串

說明

curl_error(CurlHandle $handle): 字串

傳回最後一次 cURL 操作的純文字錯誤訊息。

參數

handle

curl_init() 傳回的 cURL 控制碼。

傳回值

如果沒有發生錯誤,則返回錯誤訊息或 ''(空字串)。

更新日誌

版本 說明
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);
?>

參見

新增註釋

使用者貢獻的註釋 4 則註釋

patrick at ibuildings dot nl
11 年前
如果您要擷取錯誤訊息,請確保在關閉目前的 cURL 工作階段之前擷取它,否則錯誤訊息將會被重置為空字串。
paul at paulmcgarry dot com
16 年前
為了讓 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。)
匿名
3 年前
如果您正在使用 curl_multi 且發生錯誤,curl_error() 會一直保持空白,直到您呼叫 curl_multi_info_read() 為止。 該函式會「提取」curl 函式庫內的資訊,讓 curl_error() 可以返回有用的字串。

這真的應該要添加到文件中,因為它一點也不明顯。
anrdaemon at freemail dot ru
5 年前
curl_error 並非 curl_errno 的文字表示形式。
它是一個實際的錯誤*訊息*。
如果您想要錯誤*代碼*的文字表示形式,請參考 curl_strerror。
To Top