PHP Conference Japan 2024

curl_error

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

curl_error返回包含当前会话的最后一个错误的字符串

描述

curl_error(CurlHandle $handle): string

返回上次 cURL 操作的明文错误消息。

参数

handle

curl_init() 返回的 cURL句柄。

返回值

返回错误消息或 ''(空字符串),如果未发生错误则返回空字符串。

变更日志

版本 描述
8.0.0 handle 现在期望一个 CurlHandle 实例;之前,期望一个 resource

示例

示例 #1 curl_error() 示例

<?php
// 创建一个指向不存在位置的 curl 句柄
$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
'操作完成,没有错误';
}

// 关闭句柄
curl_close($ch);
?>

参见

添加注释

用户贡献注释 4 条注释

64
patrick at ibuildings dot nl
11 年前
如果您想获取错误消息,请确保在关闭当前 cURL 会话之前获取它,否则错误消息将重置为空字符串。
28
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。)
8
匿名
3 年前
如果您使用的是 curl_multi 并且存在错误,则 curl_error() 将保持为空,直到您调用 curl_multi_info_read() 为止。该函数将 curl 库内部的信息“泵送”到 curl_error() 将返回有用的字符串的程度。

这确实应该添加到文档中,因为它一点也不明显。
7
anrdaemon at freemail dot ru
5 年前
curl_error 不是 curl_errno 的文本表示形式。
它是一个实际的错误*消息*。
如果您想要错误*代码*的文本表示形式,请查找 curl_strerror。
To Top