预定义常量

以下常量由此扩展定义,并且仅在扩展已编译到 PHP 或在运行时动态加载时可用。

这些常量的描述和用途在 curl_setopt()curl_multi_setopt()curl_getinfo() 文档中描述。

CURLFTP_CREATE_DIR (int)
从 PHP 7.0.7 和 cURL 7.19.3 开始可用。
CURLFTP_CREATE_DIR_NONE (int)
从 PHP 7.0.7 和 cURL 7.19.3 开始可用。
CURLFTP_CREATE_DIR_RETRY (int)
从 PHP 7.0.7 和 cURL 7.19.3 开始可用。
CURLFTPSSL_TRY (int)
CURLFTPSSL_ALL (int)
CURLFTPSSL_CONTROL (int)
CURLFTPSSL_NONE (int)
CURLFTPMETHOD_DEFAULT (int)
从 PHP 8.2.0 和 cURL 7.15.3 开始可用。
CURLALTSVC_H1 (int)
从 PHP 8.2.0 和 cURL 7.64.1 开始可用。
CURLALTSVC_H2 (int)
从 PHP 8.2.0 和 cURL 7.64.1 开始可用。
CURLALTSVC_H3 (int)
从 PHP 8.2.0 和 cURL 7.64.1 开始可用。
CURLALTSVC_READONLYFILE (int)
从 PHP 8.2.0 和 cURL 7.64.1 开始可用。
CURL_SSLVERSION_DEFAULT (int)
CURL_SSLVERSION_TLSv1 (int)
CURL_SSLVERSION_SSLv2 (int)
CURL_SSLVERSION_SSLv3 (int)
CURL_SSLVERSION_TLSv1_0 (int)
CURL_SSLVERSION_TLSv1_1 (int)
CURL_SSLVERSION_TLSv1_2 (int)
CURL_SSLVERSION_TLSv1_3 (int)
从 PHP 7.3.0 和 cURL 7.52.0 开始可用。
CURLHSTS_ENABLE (int)
从 PHP 8.2.0 和 cURL 7.74.0 开始可用。
CURLHSTS_READONLYFILE (int)
从 PHP 8.2.0 和 cURL 7.74.0 开始可用。
CURLAUTH_BASIC (int)
CURLAUTH_DIGEST (int)
CURLAUTH_GSSNEGOTIATE (int)
CURLAUTH_NEGOTIATE (int)
从 PHP 7.0.7 和 cURL 7.38.0 开始可用。
CURLAUTH_NTLM (int)
CURLAUTH_NTLM_WB (int)
从 PHP 7.0.7 和 cURL 7.22.0 开始可用。
CURLAUTH_ANY (int)
CURLAUTH_ANYSAFE (int)
CURLAUTH_AWS_SIGV4 (int)
从 PHP 8.2.0 和 cURL 7.75.0 开始可用。
CURLPX_BAD_ADDRESS_TYPE (int)
从 PHP 8.2.0 和 cURL 7.73.0 开始可用。
CURLPX_BAD_VERSION (int)
从 PHP 8.2.0 和 cURL 7.73.0 开始可用。
CURLPX_CLOSED (int)
从 PHP 8.2.0 和 cURL 7.73.0 开始可用。
CURLPX_GSSAPI (int)
从 PHP 8.2.0 和 cURL 7.73.0 开始可用。
CURLPX_GSSAPI_PERMSG (int)
从 PHP 8.2.0 和 cURL 7.73.0 开始可用。
CURLPX_GSSAPI_PROTECTION (int)
从 PHP 8.2.0 和 cURL 7.73.0 开始可用。
CURLPX_IDENTD_DIFFER (int)
从 PHP 8.2.0 和 cURL 7.73.0 开始可用。
CURLPX_IDENTD (int)
从 PHP 8.2.0 和 cURL 7.73.0 开始可用。
CURLPX_LONG_HOSTNAME (int)
从 PHP 8.2.0 和 cURL 7.73.0 开始可用。
CURLPX_LONG_PASSWD (int)
从 PHP 8.2.0 和 cURL 7.73.0 开始可用。
CURLPX_LONG_USER (int)
从 PHP 8.2.0 和 cURL 7.73.0 开始可用。
CURLPX_NO_AUTH (int)
从 PHP 8.2.0 和 cURL 7.73.0 开始可用。
CURLPX_OK (int)
从 PHP 8.2.0 和 cURL 7.73.0 开始可用。
CURLPX_RECV_ADDRESS (int)
从 PHP 8.2.0 和 cURL 7.73.0 开始可用。
CURLPX_RECV_AUTH (int)
从 PHP 8.2.0 和 cURL 7.73.0 开始可用。
CURLPX_RECV_CONNECT (int)
从 PHP 8.2.0 和 cURL 7.73.0 开始可用。
CURLPX_RECV_REQACK (int)
从 PHP 8.2.0 和 cURL 7.73.0 开始可用。
CURLPX_REPLY_ADDRESS_TYPE_NOT_SUPPORTED (int)
从 PHP 8.2.0 和 cURL 7.73.0 开始可用。
CURLPX_REPLY_COMMAND_NOT_SUPPORTED (int)
从 PHP 8.2.0 和 cURL 7.73.0 开始可用。
CURLPX_REPLY_CONNECTION_REFUSED (int)
从 PHP 8.2.0 和 cURL 7.73.0 开始可用。
CURLPX_REPLY_GENERAL_SERVER_FAILURE (int)
从 PHP 8.2.0 和 cURL 7.73.0 开始可用。
CURLPX_REPLY_HOST_UNREACHABLE (int)
从 PHP 8.2.0 和 cURL 7.73.0 开始可用。
CURLPX_REPLY_NETWORK_UNREACHABLE (int)
从 PHP 8.2.0 和 cURL 7.73.0 开始可用。
CURLPX_REPLY_NOT_ALLOWED (int)
从 PHP 8.2.0 和 cURL 7.73.0 开始可用。
CURLPX_REPLY_TTL_EXPIRED (int)
从 PHP 8.2.0 和 cURL 7.73.0 开始可用。
CURLPX_REPLY_UNASSIGNED (int)
从 PHP 8.2.0 和 cURL 7.73.0 开始可用。
CURLPX_REQUEST_FAILED (int)
从 PHP 8.2.0 和 cURL 7.73.0 开始可用。
CURLPX_RESOLVE_HOST (int)
从 PHP 8.2.0 和 cURL 7.73.0 开始可用。
CURLPX_SEND_AUTH (int)
从 PHP 8.2.0 和 cURL 7.73.0 开始可用。
CURLPX_SEND_CONNECT (int)
从 PHP 8.2.0 和 cURL 7.73.0 开始可用。
CURLPX_SEND_REQUEST (int)
从 PHP 8.2.0 和 cURL 7.73.0 开始可用。
CURLPX_UNKNOWN_FAIL (int)
从 PHP 8.2.0 和 cURL 7.73.0 开始可用。
CURLPX_UNKNOWN_MODE (int)
从 PHP 8.2.0 和 cURL 7.73.0 开始可用。
CURLPX_USER_REJECTED (int)
从 PHP 8.2.0 和 cURL 7.73.0 开始可用。
CURL_PUSH_OK (int)
自 PHP 7.1.0 和 cURL 7.44.0 开始可用
CURL_PUSH_DENY (int)
自 PHP 7.1.0 和 cURL 7.44.0 开始可用
CURL_REDIR_POST_301 (int)
自 PHP 7.0.7 和 cURL 7.18.2 开始可用
CURL_REDIR_POST_302 (int)
自 PHP 7.0.7 和 cURL 7.18.2 开始可用
CURL_REDIR_POST_303 (int)
自 PHP 7.0.7 和 cURL 7.25.1 开始可用
CURL_REDIR_POST_ALL (int)
自 PHP 7.0.7 和 cURL 7.18.2 开始可用
CURL_TIMECOND_NONE (int)
CURL_TIMECOND_IFMODSINCE (int)
CURL_TIMECOND_IFUNMODSINCE (int)
CURL_TIMECOND_LASTMOD (int)
CURL_VERSION_ALTSVC (int)
自 PHP 7.3.6 和 cURL 7.64.1 开始可用
CURL_VERSION_ASYNCHDNS (int)
异步 DNS 解析。自 PHP 7.3.0 和 cURL 7.10.7 开始可用
CURL_VERSION_BROTLI (int)
自 PHP 7.3.0 和 cURL 7.57.0 开始可用
CURL_VERSION_CONV (int)
支持字符转换。自 PHP 7.3.0 和 cURL 7.15.4 开始可用
CURL_VERSION_CURLDEBUG (int)
支持调试内存跟踪。自 PHP 7.3.6 和 cURL 7.19.6 开始可用
CURL_VERSION_DEBUG (int)
使用调试功能构建。自 PHP 7.3.0 和 cURL 7.10.6 开始可用
CURL_VERSION_GSASL (int)
自 PHP 8.2.0 和 cURL 7.76.0 开始可用
CURL_VERSION_GSSAPI (int)
使用 GSS-API 库构建。自 PHP 7.3.0 和 cURL 7.38.0 开始可用
CURL_VERSION_GSSNEGOTIATE (int)
支持协商身份验证。自 PHP 7.3.0 和 cURL 7.10.6 开始可用(自 7.38.0 开始弃用)
CURL_VERSION_HSTS (int)
从 PHP 8.2.0 和 cURL 7.74.0 开始可用。
CURL_VERSION_IDN (int)
支持国际化域名。自 PHP 7.3.0 和 cURL 7.12.0 开始可用
CURL_VERSION_MULTI_SSL (int)
自 PHP 7.3.0 和 cURL 7.56.0 开始可用
CURL_VERSION_NTLM (int)
支持 NTLM 身份验证。自 PHP 7.3.0 和 cURL 7.10.6 开始可用
CURL_VERSION_NTLM_WB (int)
支持 NTLM 委派到 winbind 帮助程序。自 PHP 7.3.0 和 cURL 7.22.0 开始可用
CURL_VERSION_IPV6 (int)
支持 IPv6。
CURL_VERSION_KERBEROS4 (int)
支持 Kerberos V4 身份验证。
CURL_VERSION_KERBEROS5 (int)
支持 Kerberos V5 身份验证。自 PHP 7.0.7 和 cURL 7.40.0 开始可用
CURL_VERSION_HTTP2 (int)
内置 HTTP2 支持。自 cURL 7.33.0 开始可用
CURL_VERSION_HTTP3 (int)
自 PHP 8.2.0 和 cURL 7.66.0 开始可用
CURL_VERSION_LARGEFILE (int)
支持大于 2GB 的文件。自 cURL 7.33.0 开始可用
CURL_VERSION_PSL (int)
Mozilla 公共后缀列表,用于 cookie 域验证。自 PHP 7.3.6 和 cURL 7.47.0 开始可用
CURL_VERSION_SPNEGO (int)
支持 SPNEGO 身份验证。自 PHP 7.3.0 和 cURL 7.10.8 开始可用
CURL_VERSION_SSPI (int)
使用 Windows SSPI 构建。自 PHP 7.3.0 和 cURL 7.13.2 开始可用
CURL_VERSION_SSL (int)
存在 SSL 选项。
CURL_VERSION_TLSAUTH_SRP (int)
支持 TLS-SRP 身份验证。自 PHP 7.3.0 和 cURL 7.21.4 开始可用
CURL_VERSION_UNICODE (int)
自 PHP 8.2.0 和 cURL 7.72.0 开始可用
CURL_VERSION_UNIX_SOCKETS (int)
支持 Unix 域套接字。自 PHP 7.0.7 和 cURL 7.40.0 开始可用
CURL_VERSION_ZSTD (int)
自 PHP 8.2.0 和 cURL 7.72.0 开始可用
CURL_VERSION_LIBZ (int)
存在 libz 功能。
CURLVERSION_NOW (int)
CURLFTPAUTH_DEFAULT (int)
CURLFTPAUTH_SSL (int)
CURLFTPAUTH_TLS (int)
CURLPROXY_HTTP (int)
自 cURL 7.10 开始可用。
CURLPROXY_HTTP_1_0 (int)
从 PHP 7.0.7 和 cURL 7.19.3 开始可用。
CURLPROXY_SOCKS4 (int)
自 cURL 7.10 开始可用。
CURLPROXY_SOCKS5 (int)
自 cURL 7.10 开始可用。
CURL_NETRC_OPTIONAL (int)
CURL_NETRC_IGNORED (int)
CURL_NETRC_REQUIRED (int)
CURL_HTTP_VERSION_NONE (int)
CURL_HTTP_VERSION_1_0 (int)
CURL_HTTP_VERSION_1_1 (int)
CURL_HTTP_VERSION_2 (int)
自 PHP 7.0.7 和 cURL 7.43.0 开始可用
CURL_HTTP_VERSION_2_0 (int)
自 cURL 7.33.0 开始可用
CURL_HTTP_VERSION_2TLS (int)
自 PHP 7.0.7 和 cURL 7.47.0 开始可用
CURL_HTTP_VERSION_2_PRIOR_KNOWLEDGE (int)
自 PHP 7.0.7 和 cURL 7.49.0 开始可用
CURLMSG_DONE (int)
CURLSSLOPT_ALLOW_BEAST (int)
自 cURL 7.25.0 开始可用
CURLSSLOPT_NO_REVOKE (int)
自 PHP 7.0.7 和 cURL 7.44.0 开始可用
CURLSSLOPT_AUTO_CLIENT_CERT (int)
自 PHP 8.2.0 和 cURL 7.77.0 开始可用
CURLSSLOPT_NATIVE_CA (int)
自 PHP 8.2.0 和 cURL 7.71.0 开始可用
CURLSSLOPT_NO_PARTIALCHAIN (int)
自 PHP 8.2.0 和 cURL 7.68.0 开始可用
CURLSSLOPT_REVOKE_BEST_EFFORT (int)
自 PHP 8.2.0 和 cURL 7.70.0 开始可用
CURLSSH_AUTH_AGENT (int)
自 PHP 7.0.7 和 cURL 7.28.0 开始可用
CURLSSH_AUTH_ANY (int)
CURLSSH_AUTH_DEFAULT (int)
CURLSSH_AUTH_HOST (int)
CURLSSH_AUTH_KEYBOARD (int)
CURLSSH_AUTH_NONE (int)
CURLSSH_AUTH_PASSWORD (int)
CURLSSH_AUTH_PUBLICKEY (int)
CURLPIPE_NOTHING (int)
自 cURL 7.43.0 版本起可用。
CURLPIPE_HTTP1 (int)
自 cURL 7.43.0 版本起可用。
CURLPIPE_MULTIPLEX (int)
自 cURL 7.43.0 版本起可用。
CURLPROXY_SOCKS4A (int)
自 cURL 7.18.0 版本起可用。
CURLPROXY_SOCKS5_HOSTNAME (int)
自 cURL 7.18.0 版本起可用。
CURLHEADER_SEPARATE (int)
自 PHP 7.0.7 和 cURL 7.37.0 版本起可用。
CURLHEADER_UNIFIED (int)
自 PHP 7.0.7 和 cURL 7.37.0 版本起可用。
CURLAUTH_GSSAPI (int)
自 PHP 7.3.0 和 cURL 7.54.1 版本起可用
CURL_MAX_READ_SIZE (int)
自 PHP 7.3.0 和 cURL 7.53.0 版本起可用
CURLPROXY_HTTPS (int)
从 PHP 7.3.0 和 cURL 7.52.0 开始可用。
CURL_SSLVERSION_MAX_DEFAULT (int)
自 PHP 7.3.0 和 cURL 7.54.0 版本起可用
CURL_SSLVERSION_MAX_NONE (int)
自 PHP 7.3.0 和 cURL 7.54.0 版本起可用
CURL_SSLVERSION_MAX_TLSv1_0 (int)
自 PHP 7.3.0 和 cURL 7.54.0 版本起可用
CURL_SSLVERSION_MAX_TLSv1_1 (int)
自 PHP 7.3.0 和 cURL 7.54.0 版本起可用
CURL_SSLVERSION_MAX_TLSv1_2 (int)
自 PHP 7.3.0 和 cURL 7.54.0 版本起可用
CURL_SSLVERSION_MAX_TLSv1_3 (int)
自 PHP 7.3.0 和 cURL 7.54.0 版本起可用
CURL_VERSION_HTTPS_PROXY (int)
从 PHP 7.3.0 和 cURL 7.52.0 开始可用。
CURLAUTH_BEARER (int)
自 PHP 7.3.0 和 cURL 7.61.0 版本起可用。
CURLSSH_AUTH_GSSAPI (int)
自 PHP 7.3.0 和 cURL 7.58.0 版本起可用
CURLMIMEOPT_FORMESCAPE (int)
自 PHP 8.3.0 和 cURL 7.81.0 版本起可用
CURLWS_RAW_MODE (int)
自 PHP 8.3.0 和 cURL 7.86.0 版本起可用
CURLKHMATCH_OK (int)
自 PHP 8.3.0 和 cURL 7.19.6 版本起可用
CURLKHMATCH_MISMATCH (int)
自 PHP 8.3.0 和 cURL 7.19.6 版本起可用
CURLKHMATCH_MISSING (int)
自 PHP 8.3.0 和 cURL 7.19.6 版本起可用
CURLKHMATCH_LAST (int)
自 PHP 8.3.0 和 cURL 7.19.6 版本起可用
curl-setopt()
常量 描述
CURLOPT_ABSTRACT_UNIX_SOCKET (int)

启用使用抽象 Unix 域套接字而不是建立到主机的 TCP 连接,并将路径设置为给定的 string。此选项与 CURLOPT_UNIX_SOCKET_PATH 具有相同的语义。这两个选项共享相同的存储,因此每个句柄只能设置其中一个。自 PHP 7.3.0 和 cURL 7.53.0 版本起可用

CURLOPT_ALTSVC (int)

传递 cURL 要用作 Alt-Svc 缓存文件的文件名,以从中读取现有缓存内容,并且可能在传输后也写回它,除非通过 CURLOPT_ALTSVC_CTRL 设置了 CURLALTSVC_READONLYFILE。自 PHP 8.2.0 和 cURL 7.64.1 版本起可用。

CURLOPT_ALTSVC_CTRL (int)

使用正确的功能集填充位掩码,以指示 cURL 如何处理使用此句柄的传输的 Alt-Svc。cURL 仅接受通过 HTTPS 的 Alt-Svc 标头。它还将仅完成对备用来源的请求,如果该来源正确地通过 HTTPS 托管。设置任何位将启用 alt-svc 引擎。选项包括:CURLALTSVC_H1CURLALTSVC_H2CURLALTSVC_H3CURLALTSVC_READONLYFILE。自 PHP 8.2.0 和 cURL 7.64.1 版本起可用。

CURLOPT_AUTOREFERER (int)

true 用于在请求中自动设置 Referer: 字段,该请求遵循 Location: 重定向。

CURLOPT_AWS_SIGV4 (int)

在 HTTP(S) 标头上提供 AWS V4 签名身份验证。此选项会覆盖在 CURLOPT_HTTPAUTH 中设置的任何其他身份验证类型。此方法不能与其他身份验证类型结合使用。自 PHP 8.2.0 和 cURL 7.75.0 版本起可用

CURLOPT_BINARYTRANSFER (int)

CURLOPT_BUFFERSIZE (int)

用于每次读取的缓冲区大小。但是,不能保证会满足此请求。自 cURL 7.10 版本起可用。

CURLOPT_CAINFO (int)

包含一个或多个证书的文件的名称,用于验证对等方。只有与 CURLOPT_SSL_VERIFYPEER 结合使用时才有效。可能需要绝对路径。

CURLOPT_CAINFO_BLOB (int)

包含一个或多个证书的 PEM 文件的名称,用于验证对等方。此选项会覆盖 CURLOPT_CAINFO。自 PHP 8.2.0 和 cURL 7.77.0 版本起可用

CURLOPT_CAPATH (int)

包含多个 CA 证书的目录。与 CURLOPT_SSL_VERIFYPEER 一起使用此选项。

CURLOPT_CA_CACHE_TIMEOUT (int)

自 PHP 8.3.0 和 cURL 7.87.0 版本起可用

CURLOPT_CERTINFO (int)

true 用于在安全传输上将 SSL 证书信息输出到 STDERR。在 cURL 7.19.1 中添加。需要 CURLOPT_VERBOSE 打开才能生效。

CURLOPT_CONNECTTIMEOUT (int)

尝试连接时等待的秒数。使用 0 表示无限等待。

CURLOPT_CONNECTTIMEOUT_MS (int)

尝试连接时等待的毫秒数。使用 0 表示无限等待。如果 libcurl 构建为使用标准系统名称解析器,则连接的那部分仍然会使用完整的秒级分辨率来进行超时,最小允许超时时间为一秒。自 cURL 7.16.2 版本起可用。

CURLOPT_CONNECT_ONLY (int)

true 表示库将执行所有必需的代理身份验证和连接设置,但不会进行数据传输。此选项在 HTTP、SMTP 和 POP3 中实现。自 cURL 7.15.2 版本起可用。

CURLOPT_CONNECT_TO (int)

连接到特定主机和端口,而不是 URL 的主机和端口。接受格式为 HOST:PORT:CONNECT-TO-HOST:CONNECT-TO-PORT 的字符串数组。自 PHP 7.0.7 和 cURL 7.49.0 版本起可用

要在 HTTP 请求中使用的 "Cookie: " 标头的内容。请注意,多个 cookie 使用分号和空格分隔(例如,"fruit=apple; colour=red")。

CURLOPT_COOKIEFILE (int)

包含 cookie 数据的文件的名称。cookie 文件可以是 Netscape 格式,也可以是简单地将 HTTP 样式标头转储到文件。如果名称为空字符串,则不会加载任何 cookie,但仍会启用 cookie 处理。

CURLOPT_COOKIEJAR (int)

用于在句柄的析构函数被调用时将所有内部 cookie 保存到其中的文件的名称。

警告

从 PHP 8.0.0 开始,curl_close() 是一个无操作函数,它不会销毁句柄。如果需要在句柄自动销毁之前写入 cookie,请在句柄上调用 unset()

CURLOPT_COOKIELIST (int)

cookie 字符串(即 Netscape/Mozilla 格式的单行,或常规 HTTP 样式的 Set-Cookie 标头)将该单个 cookie 添加到内部 cookie 存储中。 "ALL" 会擦除内存中保存的所有 cookie。 "SESS" 会擦除内存中保存的所有会话 cookie。 "FLUSH" 会将所有已知 cookie 写入 CURLOPT_COOKIEJAR 指定的文件。 "RELOAD" 会从 CURLOPT_COOKIEFILE 指定的文件加载所有 cookie。自 cURL 7.14.1 版本起可用

CURLOPT_COOKIESESSION (int)

true 用于标记此为新的 cookie “会话”。 它将强制 libcurl 忽略所有它即将加载的来自先前会话的“会话 cookie”。 默认情况下,libcurl 始终存储和加载所有 cookie,无论它们是会话 cookie 还是其他类型。 会话 cookie 是没有过期日期的 cookie,它们只在本“会话”期间有效并存在。

CURLOPT_CRLF (int)

true 用于在传输过程中将 Unix 换行符转换为 CRLF 换行符。

CURLOPT_CUSTOMREQUEST (int)

在执行 HTTP 请求时,使用自定义请求方法来代替 "GET""HEAD"。 这对于执行 "DELETE" 或其他更模糊的 HTTP 请求很有用。 有效值为 "GET""POST""CONNECT" 等; 即不要在这里输入整个 HTTP 请求行。 例如,输入 "GET /index.html HTTP/1.0\r\n\r\n" 是错误的。

注意:

在确保服务器支持自定义请求方法之前,不要这样做。

CURLOPT_DEFAULT_PROTOCOL (int)

如果 URL 缺少方案名称,则使用默认协议。 可用自 PHP 7.0.7 和 cURL 7.45.0。

CURLOPT_DISALLOW_USERNAME_IN_URL (int)

true 用于不允许包含用户名 的 URL。 默认情况下 (0) 允许用户名。 可用自 PHP 7.3.0 和 cURL 7.61.0。

CURLOPT_DNS_CACHE_TIMEOUT (int)

将 DNS 条目保存在内存中的秒数。 此选项默认设置为 120(2 分钟)。

CURLOPT_DNS_INTERFACE (int)

设置 DNS 解析器应绑定的网络接口的名称。 这必须是接口名称(而不是地址)。 可用自 PHP 7.0.7 和 cURL 7.33.0。

CURLOPT_DNS_LOCAL_IP4 (int)

设置解析器应绑定的本地 IPv4 地址。 参数应包含单个数字 IPv4 地址,作为字符串。 可用自 PHP 7.0.7 和 cURL 7.33.0。

CURLOPT_DNS_LOCAL_IP6 (int)

设置解析器应绑定的本地 IPv6 地址。 参数应包含单个数字 IPv6 地址,作为字符串。 可用自 PHP 7.0.7 和 cURL 7.33.0。

CURLOPT_DNS_SHUFFLE_ADDRESSES (int)

true 用于随机打乱所有返回地址的顺序,以便在解析名称并返回多个 IP 地址时,以随机顺序使用它们。 这可能导致 IPv4 在 IPv6 之前使用,反之亦然。 可用自 PHP 7.3.0 和 cURL 7.60.0。

CURLOPT_DNS_USE_GLOBAL_CACHE (int)

true 用于使用全局 DNS 缓存。 此选项不是线程安全的。 如果 PHP 为非线程使用(CLI、FCGI、Apache2-Prefork 等)构建,则默认情况下有条件地启用它。

CURLOPT_DOH_SSL_VERIFYHOST (int)

根据主机名验证 DNS-over-HTTPS 服务器的 SSL 证书名称字段。 可用自 PHP 8.2.0 和 cURL 7.76.0。

CURLOPT_DOH_SSL_VERIFYPEER (int)

验证 DNS-over-HTTPS 服务器的 SSL 证书的真实性。 可用自 PHP 8.2.0 和 cURL 7.76.0。

CURLOPT_DOH_SSL_VERIFYSTATUS (int)

告诉 cURL 使用“证书状态请求”TLS 扩展(OCSP 绑定)验证 DNS-over-HTTPS 服务器证书的状态。 可用自 PHP 8.2.0 和 cURL 7.76.0。

CURLOPT_DOH_URL (int)

提供 DNS-over-HTTPS URL。 可用自 PHP 8.1.0 和 cURL 7.62.0。

CURLOPT_EGDSOCKET (int)

CURLOPT_RANDOM_FILE 相似,但它是一个指向熵收集守护进程套接字的文件名。

CURLOPT_ENCODING (int)

"Accept-Encoding: " 标头的内容。 这将启用对响应的解码。 支持的编码为 "identity""deflate""gzip"。 如果设置为空字符串,"",则会发送包含所有支持编码类型的标头。 可用自 cURL 7.10。

CURLOPT_EXPECT_100_TIMEOUT_MS (int)

Expect: 100-continue 响应的超时时间(毫秒)。 默认值为 1000 毫秒。 可用自 PHP 7.0.7 和 cURL 7.36.0。

CURLOPT_FAILONERROR (int)

true 用于在返回的 HTTP 代码大于或等于 400 时详细失败。 默认行为是正常返回页面,忽略代码。

CURLOPT_FILE (int)

传输应写入的文件。 默认值为 STDOUT(浏览器窗口)。

CURLOPT_FILETIME (int)

true 用于尝试检索远程文档的修改日期。 此值可以使用 CURLINFO_FILETIME 选项与 curl_getinfo() 一起检索。

CURLOPT_FOLLOWLOCATION (int)

true 用于跟踪服务器作为 HTTP 标头一部分发送的任何 "Location: " 标头。 另请参见 CURLOPT_MAXREDIRS。 当启用 open_basedir 时,此常量不可用。

CURLOPT_FORBID_REUSE (int)

true 用于强制连接在完成处理后显式关闭,而不是被池化以供重用。

CURLOPT_FRESH_CONNECT (int)

true 用于强制使用新的连接,而不是缓存的连接。

CURLOPT_FTPAPPEND (int)

true 用于将内容追加到远程文件,而不是覆盖它。

CURLOPT_FTPASCII (int)

CURLOPT_TRANSFERTEXT 的别名。 请改用它。

CURLOPT_FTPLISTONLY (int)

true 用于只列出 FTP 目录的名称。

CURLOPT_FTPPORT (int)

用于获取 FTP “PORT” 指令使用的 IP 地址的值。 “PORT” 指令告诉远程服务器连接到我们指定的 IP 地址。 该字符串可以是普通 IP 地址、主机名、网络接口名称(在 Unix 下)或只是一个简单的 “-” 以使用系统的默认 IP 地址。

CURLOPT_FTPSSLAUTH (int)

FTP 身份验证方法(当激活时):CURLFTPAUTH_SSL(先尝试 SSL),CURLFTPAUTH_TLS(先尝试 TLS),或 CURLFTPAUTH_DEFAULT(让 cURL 决定)。 可用自 cURL 7.12.2。

CURLOPT_FTP_CREATE_MISSING_DIRS (int)

true 用于在 FTP 操作遇到当前不存在的路径时创建丢失的目录。

CURLOPT_FTP_FILEMETHOD (int)

告诉 curl 使用哪种方法访问 FTP(S) 服务器上的文件。 可能的值是 CURLFTPMETHOD_DEFAULTCURLFTPMETHOD_MULTICWDCURLFTPMETHOD_NOCWDCURLFTPMETHOD_SINGLECWD。 可用自 cURL 7.15.1。

CURLOPT_FTP_SSL (int)

CURLOPT_FTP_USE_EPRT (int)

true 用于在执行主动 FTP 下载时使用 EPRT(和 LPRT)。 使用 false 禁用 EPRT 和 LPRT,只使用 PORT。

CURLOPT_FTP_USE_EPSV (int)

true 用于首先尝试使用 EPSV 命令进行 FTP 传输,然后再恢复为 PASV。 设置为 false 以禁用 EPSV。

CURLOPT_HAPPY_EYEBALLS_TIMEOUT_MS (int)

针对 happy eyeballs 算法,为 IPv6 提供快速启动。happy eyeballs 尝试连接双栈主机的 IPv4 和 IPv6 地址,优先使用 IPv6,超时时间为毫秒。默认值为 CURL_HET_DEFAULT,目前为 200 毫秒。从 PHP 7.3.0 和 cURL 7.59.0 开始可用。

CURLOPT_HAPROXYPROTOCOL (int)

设置为 true 以在连接开始时发送 HAProxy PROXY 协议 v1 标头。默认操作是不发送此标头。从 PHP 7.3.0 和 cURL 7.60.0 开始可用。

CURLOPT_HEADER (int)

设置为 true 以将标头包含在输出中。

CURLOPT_HEADERFUNCTION (int)

一个接受两个参数的回调函数。第一个是 cURL 资源,第二个是包含要写入的标头数据的字符串。标头数据必须由此回调函数写入。返回写入的字节数。

CURLOPT_HEADEROPT (int)

可能的值是 CURLHEADER_UNIFIEDCURLHEADER_SEPARATE。从 cURL 7.42.1 开始默认为 CURLHEADER_SEPARATE,在 cURL 7.42.1 之前默认为 CURLHEADER_UNIFIED。从 PHP 7.0.7 和 cURL 7.37.0 开始可用。

CURLOPT_HSTS (int)

HSTS(HTTP 严格传输安全)缓存文件名。从 PHP 8.2.0 和 cURL 7.74.0 开始可用。

CURLOPT_HSTS_CTRL (int)

控制 HSTS(HTTP 严格传输安全)行为。使用正确的功能集填充位掩码,以指示 cURL 如何处理使用此句柄的传输的 HSTS。CURLHSTS_ENABLE 启用内存中的 HSTS 缓存。如果定义了 HSTS 缓存文件,则设置 CURLHSTS_READONLYFILE 以使文件为只读。从 PHP 8.2.0 和 cURL 7.74.0 开始可用。

CURLOPT_HTTP09_ALLOWED (int)

是否允许 HTTP/0.9 响应。从 libcurl 7.66.0 开始默认为 false;以前默认为 true。分别从 PHP 7.3.15 和 7.4.3 以及 cURL 7.64.0 开始可用。

CURLOPT_HTTP200ALIASES (int)

一个 HTTP 200 响应数组,这些响应将被视为有效响应,而不是错误。从 cURL 7.10.3 开始可用。

CURLOPT_HTTPAUTH (int)

要使用的 HTTP 身份验证方法。选项包括:CURLAUTH_BASICCURLAUTH_DIGESTCURLAUTH_GSSNEGOTIATECURLAUTH_NTLMCURLAUTH_AWS_SIGV4CURLAUTH_ANYCURLAUTH_ANYSAFE。可以使用按位 |(或)运算符组合多个方法。如果这样做,cURL 将轮询服务器以查看它支持哪些方法,并选择最佳方法。CURLAUTH_ANY 设置所有位。cURL 将自动选择它认为最安全的方法。CURLAUTH_ANYSAFE 设置除 CURLAUTH_BASIC 之外的所有位。cURL 将自动选择它认为最安全的方法。

CURLOPT_HTTPGET (int)

设置为 true 以将 HTTP 请求方法重置为 GET。由于 GET 是默认方法,因此只有在更改请求方法时才需要这样做。

CURLOPT_HTTPHEADER (int)

要设置的 HTTP 标头字段数组,格式为 array('Content-type: text/plain', 'Content-length: 100')

CURLOPT_HTTPPROXYTUNNEL (int)

设置为 true 以通过给定的 HTTP 代理进行隧道连接。

CURLOPT_HTTP_CONTENT_DECODING (int)

设置为 false 以获取原始 HTTP 响应正文。从 cURL 7.16.2 开始可用。

CURLOPT_HTTP_VERSION (int)

CURL_HTTP_VERSION_NONE(默认值,让 CURL 决定使用哪个版本)、CURL_HTTP_VERSION_1_0(强制使用 HTTP/1.0)、CURL_HTTP_VERSION_1_1(强制使用 HTTP/1.1)、CURL_HTTP_VERSION_2_0(尝试使用 HTTP 2)、CURL_HTTP_VERSION_2CURL_HTTP_VERSION_2_0 的别名)、CURL_HTTP_VERSION_2TLS(仅尝试使用 TLS(HTTPS)上的 HTTP 2)或 CURL_HTTP_VERSION_2_PRIOR_KNOWLEDGE(发出使用 HTTP/2 而不使用 HTTP/1.1 升级的非 TLS HTTP 请求)。

CURLOPT_INFILE (int)

上传时应该从中读取数据的文件。

CURLOPT_INFILESIZE (int)

将文件上传到远程站点时,文件的预期大小(以字节为单位)。请注意,使用此选项不会阻止 libcurl 发送更多数据,因为发送的确切内容取决于 CURLOPT_READFUNCTION

CURLOPT_INTERFACE (int)

要使用的传出网络接口的名称。可以是接口名称、IP 地址或主机名。

CURLOPT_IPRESOLVE (int)

允许应用程序在解析主机名时选择使用哪种 IP 地址。这仅在使用使用多个 IP 版本解析地址的主机名时才有意义,可能的值是 CURL_IPRESOLVE_WHATEVERCURL_IPRESOLVE_V4CURL_IPRESOLVE_V6,默认值为 CURL_IPRESOLVE_WHATEVER。从 cURL 7.10.8 开始可用。

CURLOPT_ISSUERCERT_BLOB (int)

内存 blob 中的发行 SSL 证书。从 PHP 8.1.0 和 cURL 7.71.0 开始可用。

CURLOPT_KEEP_SENDING_ON_ERROR (int)

设置为 true 以在返回的 HTTP 代码等于或大于 300 时继续发送请求正文。默认操作是停止发送并关闭流或连接。适用于手动 NTLM 身份验证。大多数应用程序不需要此选项。从 PHP 7.3.0 和 cURL 7.51.0 开始可用。

CURLOPT_KEYPASSWD (int)

使用 CURLOPT_SSLKEYCURLOPT_SSH_PRIVATE_KEYFILE 私钥所需的密码。从 cURL 7.16.1 开始可用。

CURLOPT_KRB4LEVEL (int)

KRB4(Kerberos 4)安全级别。以下任何值(从最弱到最强)都是有效的:"clear""safe""confidential""private".。如果字符串与这些值都不匹配,则使用 "private"。将此选项设置为 null 将禁用 KRB4 安全。目前,KRB4 安全仅适用于 FTP 事务。

CURLOPT_LOGIN_OPTIONS (int)

可用于设置协议特定的登录选项,例如通过“AUTH=NTLM”或“AUTH=*”的首选身份验证机制,应与 CURLOPT_USERNAME 选项结合使用。从 PHP 7.0.7 和 cURL 7.34.0 开始可用。

CURLOPT_LOW_SPEED_LIMIT (int)

CURLOPT_LOW_SPEED_TIME 秒的计数时间内,传输速度应该低于此速度(以字节/秒为单位),否则 PHP 会认为传输速度过慢并中止。

CURLOPT_LOW_SPEED_TIME (int)

在传输速度低于 CURLOPT_LOW_SPEED_LIMIT 之前,应该持续的时间(以秒为单位),否则 PHP 会认为传输速度过慢并中止。

CURLOPT_MAIL_RCPT_ALLLOWFAILS (int)

从 PHP 8.2.0 和 cURL 7.69.0 开始可用。

CURLOPT_MAXAGE_CONN (int)

允许现有连接保持空闲以被视为可重用连接的最长时间。默认最大年龄设置为 118 秒。从 PHP 8.2.0 和 cURL 7.65.0 开始可用。

CURLOPT_MAXCONNECTS (int)

允许的持久连接的最大数量。当达到限制时,缓存中最老的连接将被关闭,以防止增加打开的连接数量。

CURLOPT_MAXFILESIZE_LARGE (int)

允许下载的最大文件大小(以字节为单位)。如果请求的文件大于此值,则传输将不会开始,并且将返回 CURLE_FILESIZE_EXCEEDED。文件大小并不总是可以在下载之前知道,对于此类文件,即使文件传输最终大于此给定限制,此选项也无效。从 PHP 8.2.0 和 cURL 7.11.0 开始可用。

CURLOPT_MAXLIFETIME_CONN (int)

自连接创建起,允许现有连接被视为可重用的最大时间(以秒为单位)。如果在缓存中找到一个比此值更旧的连接,则在所有正在进行的传输完成后,它将被关闭。默认值为 0 秒,这意味着该选项被禁用,所有连接都有资格重用。从 PHP 8.2.0 和 cURL 7.80.0 开始可用。

CURLOPT_MAXREDIRS (int)

要遵循的 HTTP 重定向的最大数量。将此选项与 CURLOPT_FOLLOWLOCATION 一起使用。默认值为 20,用于防止无限重定向。设置为 -1 允许无限重定向,设置为 0 拒绝所有重定向。

CURLOPT_MAX_RECV_SPEED_LARGE (int)

如果下载在传输过程中累积平均值超过此速度(以每秒字节计),则传输将暂停以使平均速率小于或等于参数值。默认值为无限速度。从 cURL 7.15.5 开始可用。

CURLOPT_MAX_SEND_SPEED_LARGE (int)

如果上传在传输过程中累积平均值超过此速度(以每秒字节计),则传输将暂停以使平均速率小于或等于参数值。默认值为无限速度。从 cURL 7.15.5 开始可用。

CURLOPT_MIME_OPTIONS (int)

自 PHP 8.3.0 和 cURL 7.81.0 版本起可用

CURLOPT_MUTE (int)

true 表示在 cURL 函数方面完全静默。从 cURL 7.15.5 开始移除;请改用 CURLOPT_RETURNTRANSFER

CURLOPT_NETRC (int)

true 表示扫描 ~/.netrc 文件以查找正在建立连接的远程站点的用户名和密码。

CURLOPT_NOBODY (int)

true 表示从输出中排除正文。请求方法随后被设置为 HEAD。将其更改为 false 不会将其更改为 GET。

CURLOPT_NOPROGRESS (int)

true 表示禁用 cURL 传输的进度表。

注意:

PHP 自动将此选项设置为 true,这仅应出于调试目的而更改。

CURLOPT_NOSIGNAL (int)

true 表示忽略任何导致向 PHP 进程发送信号的 cURL 函数。这在多线程 SAPI 中默认启用,因此超时选项仍然可以使用。从 cURL 7.10 开始可用。

CURLOPT_PASSWDFUNCTION (int)

一个接受三个参数的回调函数。第一个是 cURL 资源,第二个是包含密码提示的字符串,第三个是最大密码长度。返回包含密码的字符串。从 PHP 7.3.0 开始移除。

CURLOPT_PASSWORD (int)

用于身份验证的密码。从 cURL 7.19.1 开始可用。

CURLOPT_PATH_AS_IS (int)

true 表示不处理点点序列。从 PHP 7.0.7 和 cURL 7.42.0 开始可用。

CURLOPT_PINNEDPUBLICKEY (int)

设置固定公钥。该字符串可以是固定公钥的文件名。预期文件格式为“PEM”或“DER”。该字符串也可以是任何数量的以“sha256//”开头的 base64 编码的 sha256 哈希值,并用“;”分隔。从 PHP 7.0.7 和 cURL 7.39.0 开始可用。

CURLOPT_PIPEWAIT (int)

true 表示等待管道/多路复用。从 PHP 7.0.7 和 cURL 7.43.0 开始可用。

CURLOPT_PORT (int)

要连接的备用端口号。

CURLOPT_POST (int)

true 表示执行常规 HTTP POST。此 POST 是正常的 application/x-www-form-urlencoded 类型,最常用于 HTML 表单。

CURLOPT_POSTFIELDS (int)

要在 HTTP “POST” 操作中发布的完整数据。此参数可以作为 URL 编码的字符串(例如 para1=val1&para2=val2&...)传递,也可以作为数组传递,其中字段名称作为键,字段数据作为值。如果 value 是数组,则 Content-Type 标头将设置为 multipart/form-data。可以使用 CURLFileCURLStringFile 发送文件,在这种情况下,value 必须是数组。

CURLOPT_POSTQUOTE (int)

一个包含要在执行 FTP 请求后在服务器上执行的 FTP 命令的数组。

CURLOPT_POSTREDIR (int)

如果设置了 CURLOPT_FOLLOWLOCATION 并且发生了特定类型的重定向,则 HTTP POST 方法应保持的位掩码,其中 1(301 Moved Permanently)、2(302 Found)和 4(303 See Other)。从 cURL 7.19.1 开始可用。

CURLOPT_PRE_PROXY (string)

设置一个 string,其中包含用作预代理的主机名或点分十进制 IP 地址,curl 在连接到 CURLOPT_PROXY 选项中为即将到来的请求指定的 HTTP(S) 代理之前,会连接到该预代理。预代理只能是 SOCKS 代理,并且应该以 [scheme]:// 为前缀以指定使用哪种类型的 socks。数值 IPv6 地址必须放在方括号内。将预代理设置为空字符串明确禁用预代理的使用。要在该字符串中指定端口号,请将 :[port] 附加到主机名的末尾。可以使用单独的选项 CURLOPT_PROXYPORT 来指定代理的端口号。如果未指定端口,则默认使用端口 1080 作为代理。从 PHP 7.3.0 和 cURL 7.52.0 开始可用。

CURLOPT_PRIVATE (int)

与该 cURL 句柄关联的任何数据。随后可以使用 curl_getinfo()CURLINFO_PRIVATE 选项检索此数据。cURL 不会对此数据执行任何操作。当使用 cURL 多句柄时,此私有数据通常是用于标识标准 cURL 句柄的唯一键。从 cURL 7.10.3 开始可用。

CURLOPT_PROGRESSFUNCTION (int)

一个接受五个参数的回调函数。第一个是 cURL 资源,第二个是本次传输预计下载的总字节数,第三个是到目前为止下载的字节数,第四个是本次传输预计上传的总字节数,第五个是到目前为止上传的字节数。

注意:

只有在 CURLOPT_NOPROGRESS 选项设置为 false 时,才会调用回调函数。

返回一个非零值以中止传输。在这种情况下,传输将设置一个 CURLE_ABORTED_BY_CALLBACK 错误。

CURLOPT_PROTOCOLS (int)

CURLPROTO_* 值的位掩码。如果使用,则此位掩码将限制 libcurl 在传输中可以使用哪些协议。这允许您拥有一个构建为支持各种协议的 libcurl,但仍将特定传输限制为仅允许使用其中的一部分。默认情况下,libcurl 将接受它支持的所有协议。另请参阅 CURLOPT_REDIR_PROTOCOLS。有效的协议选项包括:CURLPROTO_HTTPCURLPROTO_HTTPSCURLPROTO_FTPCURLPROTO_FTPSCURLPROTO_SCPCURLPROTO_SFTPCURLPROTO_TELNETCURLPROTO_LDAPCURLPROTO_LDAPSCURLPROTO_DICTCURLPROTO_FILECURLPROTO_TFTPCURLPROTO_MQTTCURLPROTO_ALL。从 cURL 7.19.4 开始可用。

CURLOPT_PROTOCOLS_STR (int)

从 PHP 8.3.0 和 cURL 7.85.0 开始可用。

CURLOPT_PROXY (int)

要通过其隧道请求的 HTTP 代理。

CURLOPT_PROXYAUTH (int)

要用于代理连接的 HTTP 身份验证方法。使用与 CURLOPT_HTTPAUTH 中描述的相同的位掩码。对于代理身份验证,目前仅支持 CURLAUTH_BASICCURLAUTH_NTLM。从 cURL 7.10.7 开始可用。

CURLOPT_PROXYHEADER (int)

要传递给代理的自定义 HTTP 标头的数组。从 PHP 7.0.7 和 cURL 7.37.0 开始可用。

CURLOPT_PROXYPORT (int)

连接到代理的端口号。此端口号也可以在 **CURLOPT_PROXY** 中设置。

**CURLOPT_PROXYTYPE** (int)

可以是 **CURLPROXY_HTTP**(默认)、**CURLPROXY_SOCKS4**、**CURLPROXY_SOCKS5**、**CURLPROXY_SOCKS4A** 或 **CURLPROXY_SOCKS5_HOSTNAME**。从 cURL 7.10 开始可用。

**CURLOPT_PROXYUSERPWD** (int)

"[username]:[password]" 格式的用户名和密码,用于连接到代理。

**CURLOPT_PROXY_CAINFO** (int)

代理证书颁发机构 (CA) 捆绑包的路径。将路径设置为 string,命名一个包含一个或多个证书的文件,用于验证 HTTPS 代理。此选项用于连接到 HTTPS 代理,而不是 HTTPS 服务器。默认设置为 libcurl 的 cacert 捆绑包假定存储在其中的系统路径。从 PHP 7.3.0 和 cURL 7.52.0 开始可用。

**CURLOPT_PROXY_CAINFO_BLOB** (int)

包含一个或多个证书的 PEM 文件的名称,用于验证 HTTPS 代理。此选项用于连接到 HTTPS 代理,而不是 HTTPS 服务器。默认设置为 libcurl 的 cacert 捆绑包假定存储在其中的系统路径。从 PHP 8.2.0 和 cURL 7.77.0 开始可用。

**CURLOPT_PROXY_CAPATH** (int)

包含多个 CA 证书的目录,用于验证 HTTPS 代理。从 PHP 7.3.0 和 cURL 7.52.0 开始可用。

**CURLOPT_PROXY_CRLFILE** (int)

设置 CRL(证书吊销列表)在 PEM 格式中的文件名,用于在 SSL 交换期间发生的证书验证中使用。从 PHP 7.3.0 和 cURL 7.52.0 开始可用。

**CURLOPT_PROXY_ISSUERCERT** (int)

代理颁发者 SSL 证书文件名。从 PHP 8.1.0 和 cURL 7.71.0 开始可用。

**CURLOPT_PROXY_ISSUERCERT_BLOB** (int)

来自内存 blob 的代理颁发者 SSL 证书。从 PHP 8.1.0 和 cURL 7.71.0 开始可用。

**CURLOPT_PROXY_KEYPASSWD** (int)

设置用于使用 **CURLOPT_PROXY_SSLKEY** 私钥所需的密码的字符串。您以前从未需要密码来加载证书,但需要密码来加载您的私钥。此选项用于连接到 HTTPS 代理,而不是 HTTPS 服务器。从 PHP 7.3.0 和 cURL 7.52.0 开始可用。

**CURLOPT_PROXY_PINNEDPUBLICKEY** (int)

设置 HTTPS 代理的固定公钥。字符串可以是您的固定公钥的文件名。预期的文件格式为 "PEM" 或 "DER"。字符串也可以是任何数量的以 "sha256//" 开头并用 ";" 分隔的 base64 编码的 sha256 哈希。从 PHP 7.3.0 和 cURL 7.52.0 开始可用。

**CURLOPT_PROXY_SERVICE_NAME** (int)

代理身份验证服务名称。从 PHP 7.0.7、cURL 7.43.0(对于 HTTP 代理)和 cURL 7.49.0(对于 SOCKS5 代理)开始可用。

**CURLOPT_PROXY_SSLCERT** (int)

用于连接到 HTTPS 代理的客户端证书的文件名。默认格式为 Secure Transport 上的 "P12" 和其他引擎上的 "PEM",并且可以使用 **CURLOPT_PROXY_SSLCERTTYPE** 更改。对于 NSS 或 Secure Transport,这也可以是您要使用它进行身份验证的证书的昵称,因为它是在安全数据库中命名的。如果您想使用当前目录中的文件,请在前面加上 "./" 前缀,以避免与昵称混淆。从 PHP 7.3.0 和 cURL 7.52.0 开始可用。

**CURLOPT_PROXY_SSLCERTTYPE** (int)

连接到 HTTPS 代理时使用的客户端证书的格式。支持的格式为 "PEM" 和 "DER",Secure Transport 除外。OpenSSL(版本 0.9.3 及更高版本)和 Secure Transport(在 iOS 5 或更高版本或 OS X 10.7 或更高版本上)也支持 "P12" 用于 PKCS#12 编码的文件。默认为 "PEM"。从 PHP 7.3.0 和 cURL 7.52.0 开始可用。

**CURLOPT_PROXY_SSLCERT_BLOB** (int)

来自内存 blob 的 SSL 代理客户端证书。从 PHP 8.1.0 和 cURL 7.71.0 开始可用。

**CURLOPT_PROXY_SSLKEY** (int)

用于连接到 HTTPS 代理的私钥的文件名。默认格式为 "PEM",可以使用 **CURLOPT_PROXY_SSLKEYTYPE** 更改。(仅限 iOS 和 Mac OS X)如果 curl 是针对 Secure Transport 构建的,则此选项将被忽略。如果使用 TLS 启用构建,则可用。从 PHP 7.3.0 和 cURL 7.52.0 开始可用。

**CURLOPT_PROXY_SSLKEYTYPE** (int)

您的私钥的格式。支持的格式为 "PEM"、"DER" 和 "ENG"。从 PHP 7.3.0 和 cURL 7.52.0 开始可用。

**CURLOPT_PROXY_SSLKEY_BLOB** (int)

来自内存 blob 的代理证书的私钥。从 PHP 8.1.0 和 cURL 7.71.0 开始可用。

**CURLOPT_PROXY_SSLVERSION** (int)

以下之一 CURL_SSLVERSION_DEFAULTCURL_SSLVERSION_TLSv1CURL_SSLVERSION_TLSv1_0CURL_SSLVERSION_TLSv1_1CURL_SSLVERSION_TLSv1_2CURL_SSLVERSION_TLSv1_3CURL_SSLVERSION_MAX_DEFAULTCURL_SSLVERSION_MAX_TLSv1_0CURL_SSLVERSION_MAX_TLSv1_1CURL_SSLVERSION_MAX_TLSv1_2CURL_SSLVERSION_MAX_TLSv1_3CURL_SSLVERSION_SSLv3

警告

最好不要设置此选项,并保留默认的 **CURL_SSLVERSION_DEFAULT**,它将尝试找出远程 SSL 协议版本。

从 PHP 7.3.0 和 cURL 7.52.0 开始可用。

**CURLOPT_PROXY_SSL_CIPHER_LIST** (int)

用于连接到 HTTPS 代理的密码列表。列表必须语法正确,它由一个或多个用冒号分隔的密码字符串组成。逗号或空格也是可接受的分隔符,但通常使用冒号,!、- 和 + 可以用作运算符。从 PHP 7.3.0 和 cURL 7.52.0 开始可用。

**CURLOPT_PROXY_SSL_OPTIONS** (int)

设置代理 SSL 行为选项,这是一个位掩码,包含以下常量:CURLSSLOPT_ALLOW_BEASTCURLSSLOPT_NO_REVOKECURLSSLOPT_NO_PARTIALCHAIN 从 PHP 7.3.0 和 cURL 7.52.0 开始可用。

**CURLOPT_PROXY_SSL_VERIFYHOST** (int)

设置为 2 以在 HTTPS 代理的证书名称字段中验证代理名称。当设置为 0 时,无论证书中使用的名称如何,连接都将成功。谨慎使用此功能!1 在 curl 7.28.0 及更早版本中被视为调试选项。从 curl 7.28.1 到 7.65.3,将返回 **CURLE_BAD_FUNCTION_ARGUMENT**。从 curl 7.66.0 开始,12 被视为相同的值。在生产环境中,此选项的值应保持为 2(默认值)。从 PHP 7.3.0 和 cURL 7.52.0 开始可用。

**CURLOPT_PROXY_SSL_VERIFYPEER** (int)

false 用于停止 cURL 验证对等方的证书。可以使用 **CURLOPT_CAINFO** 选项指定要验证的备用证书,或者可以使用 **CURLOPT_CAPATH** 选项指定证书目录。当设置为 false 时,对等方证书验证将无论如何成功。默认情况下为 **true**。从 PHP 7.3.0 和 cURL 7.52.0 开始可用。

**CURLOPT_PROXY_TLS13_CIPHERS** (int)

用于与代理建立 TLS 1.3 连接的密码套件列表。列表必须语法正确,它由一个或多个用冒号分隔的密码套件字符串组成。此选项当前仅在 curl 构建为使用 OpenSSL 1.1.1 或更高版本时使用。如果您使用的是其他 SSL 后端,可以尝试使用 **CURLOPT_PROXY_SSL_CIPHER_LIST** 选项来设置 TLS 1.3 密码套件。在使用 OpenSSL >= 1.1.1 构建时可用。从 PHP 7.3.0 和 cURL 7.61.0 开始可用。

**CURLOPT_PROXY_TLSAUTH_PASSWORD** (int)

用于 **CURLOPT_PROXY_TLSAUTH_TYPE** 选项指定的 TLS 身份验证方法的密码。要求 **CURLOPT_PROXY_TLSAUTH_USERNAME** 选项也已设置。从 PHP 7.3.0 和 cURL 7.52.0 开始可用。

**CURLOPT_PROXY_TLSAUTH_TYPE** (int)

HTTPS 连接使用的 TLS 身份验证方法。支持的方法是 "SRP"

注意:

TLS 的安全远程密码 (SRP) 身份验证,如果双方共享密钥,则提供双向身份验证。要使用 TLS-SRP,您还必须设置 CURLOPT_PROXY_TLSAUTH_USERNAMECURLOPT_PROXY_TLSAUTH_PASSWORD 选项。

从 PHP 7.3.0 和 cURL 7.52.0 开始可用。

CURLOPT_PROXY_TLSAUTH_USERNAME (int)

用于 HTTPS 代理 TLS 身份验证方法的用户名,该方法由 CURLOPT_PROXY_TLSAUTH_TYPE 选项指定。要求 CURLOPT_PROXY_TLSAUTH_PASSWORD 选项也设置。从 PHP 7.3.0 和 cURL 7.52.0 开始可用。

CURLOPT_PUT (int)

true 用于 HTTP PUT 文件。要 PUT 的文件必须使用 CURLOPT_INFILECURLOPT_INFILESIZE 设置。

CURLOPT_QUICK_EXIT (int)

自 PHP 8.3.0 和 cURL 7.87.0 版本起可用

CURLOPT_QUOTE (int)

在 FTP 请求之前在服务器上执行的 FTP 命令数组。

CURLOPT_RANDOM_FILE (int)

用于为 SSL 播种随机数生成器的文件名。

CURLOPT_RANGE (int)

要检索的数据范围,格式为 "X-Y",其中 X 或 Y 是可选的。HTTP 传输还支持多个间隔,以逗号分隔,格式为 "X-Y,N-M"

CURLOPT_READFUNCTION (int)

接受三个参数的回调函数。第一个是 cURL 资源,第二个是通过选项 CURLOPT_INFILE 提供给 cURL 的流资源,第三个是要读取的最大数据量。回调函数必须返回一个字符串,其长度等于或小于请求的数据量,通常通过从传递的流资源中读取它来实现。它应该返回一个空字符串来表示 EOF

CURLOPT_REDIR_PROTOCOLS (int)

CURLPROTO_* 值的位掩码。如果使用,此位掩码将限制 libcurl 在传输重定向时(当 CURLOPT_FOLLOWLOCATION 启用时)可能使用的协议。这允许您限制特定传输,使其仅被允许在重定向中使用协议子集。默认情况下,libcurl 将允许所有协议,除了 FILE 和 SCP。这与之前的 7.19.4 版本不同,之前的版本会无条件地重定向到所有支持的协议。有关协议常量值,请参见 CURLOPT_PROTOCOLS。从 cURL 7.19.4 开始可用。

CURLOPT_REDIR_PROTOCOLS_STR (int)

从 PHP 8.3.0 和 cURL 7.85.0 开始可用。

CURLOPT_REFERER (int)

要在 HTTP 请求中使用的 "Referer: " 标头的内容。

CURLOPT_REQUEST_TARGET (int)

从 PHP 7.3.0 和 cURL 7.55.0 开始可用。

CURLOPT_RESOLVE (int)

为特定主机和端口对提供自定义地址。主机名、端口和 IP 地址字符串数组,每个元素之间用冒号分隔。格式如下: array("example.com:80:127.0.0.1") 从 cURL 7.21.3 开始可用。

CURLOPT_RESUME_FROM (int)

要从其恢复传输的偏移量(以字节为单位)。

CURLOPT_RETURNTRANSFER (int)

true 将传输作为 curl_exec() 的返回值的字符串返回,而不是直接输出它。

CURLOPT_SAFE_UPLOAD (int)

始终为 true,它会禁用 CURLOPT_POSTFIELDS 中上传文件时对 @ 前缀的支持,这意味着以 @ 开头的值可以安全地作为字段传递。CURLFile 可用于上传。

CURLOPT_SASL_AUTHZID (int)

传输的授权标识 (authzid)。仅适用于 PLAIN SASL 身份验证机制,在该机制中它是可选的。未指定时,仅用户名指定的身份验证标识 (authcid) 以及密码将发送到服务器。服务器将在未提供时从 authcid 中推导出 authzid,然后在内部使用它。从 PHP 8.2.0 和 cURL 7.66.0 开始可用。

CURLOPT_SASL_IR (int)

true 启用在第一个数据包中发送初始响应。从 PHP 7.0.7 和 cURL 7.31.0 开始可用。

CURLOPT_SERVICE_NAME (int)

身份验证服务名称。从 PHP 7.0.7 和 cURL 7.43.0 开始可用。

CURLOPT_SHARE (int)

curl_share_init() 的结果。使 cURL 处理程序使用来自共享处理程序的数据。

CURLOPT_SOCKS5_AUTH (int)

要使用的 SOCKS5 身份验证方法。选项包括:CURLAUTH_BASICCURLAUTH_GSSAPICURLAUTH_NONE。可以使用按位 |(或)运算符组合多个方法。如果这样做,cURL 将轮询服务器以查看其支持的方法,并选择最佳方法。CURLAUTH_BASIC 允许用户名/密码身份验证。CURLAUTH_GSSAPI 允许 GSS-API 身份验证。CURLAUTH_NONE 不允许身份验证。默认值为 CURLAUTH_BASIC|CURLAUTH_GSSAPI。使用 CURLOPT_PROXYUSERPWD 选项设置实际的用户名和密码。从 PHP 7.3.0 和 cURL 7.55.0 开始可用。

CURLOPT_SSH_AUTH_TYPES (int)

由一个或多个 CURLSSH_AUTH_PUBLICKEYCURLSSH_AUTH_PASSWORDCURLSSH_AUTH_HOSTCURLSSH_AUTH_KEYBOARD 组成的位掩码。设置为 CURLSSH_AUTH_ANY 使 libcurl 选择一个。从 cURL 7.16.1 开始可用。

CURLOPT_SSH_COMPRESSION (int)

true 启用内置的 SSH 压缩。这是一个请求,而不是命令;服务器可以压缩,也可以不压缩。从 PHP 7.3.0 和 cURL 7.56.0 开始可用。

CURLOPT_SSH_HOSTKEYFUNCTION (int)

从 PHP 8.3.0 和 cURL 7.84.0 开始可用。

CURLOPT_SSH_HOST_PUBLIC_KEY_MD5 (int)

包含 32 个十六进制数字的字符串。该字符串应该是远程主机的公钥的 MD5 校验和,libcurl 将拒绝连接到该主机,除非 md5sums 相匹配。此选项仅适用于 SCP 和 SFTP 传输。从 cURL 7.17.1 开始可用。

CURLOPT_SSH_HOST_PUBLIC_KEY_SHA256 (int)

远程主机公钥的 Base64 编码 SHA256 哈希。如果给定的哈希与远程主机提供的哈希不匹配,则传输将失败。从 PHP 8.2.0 和 cURL 7.80.0 开始可用。

CURLOPT_SSH_PRIVATE_KEYFILE (int)

私钥的文件名。如果未使用,libcurl 默认使用 $HOME/.ssh/id_dsa(如果设置了 HOME 环境变量),如果未设置 HOME,则默认使用当前目录中的 "id_dsa"。如果文件受密码保护,请使用 CURLOPT_KEYPASSWD 设置密码。从 cURL 7.16.1 开始可用。

CURLOPT_SSH_PUBLIC_KEYFILE (int)

公钥的文件名。如果未使用,libcurl 默认使用 $HOME/.ssh/id_dsa.pub(如果设置了 HOME 环境变量),如果未设置 HOME,则默认使用当前目录中的 "id_dsa.pub"。从 cURL 7.16.1 开始可用。

CURLOPT_SSLCERT (int)

包含 PEM 格式证书的文件名。

CURLOPT_SSLCERTPASSWD (int)

使用 CURLOPT_SSLCERT 证书所需的密码。

CURLOPT_SSLCERTTYPE (int)

证书的格式。支持的格式包括 "PEM"(默认)、"DER""ENG"。从 OpenSSL 0.9.3 开始,还支持 "P12"(用于 PKCS#12 编码的文件)。从 cURL 7.9.3 开始可用。

CURLOPT_SSLCERT_BLOB (int)

来自内存 blob 的 SSL 客户端证书。从 PHP 8.1.0 和 cURL 7.71.0 开始可用。

CURLOPT_SSLENGINE (int)

CURLOPT_SSLKEY 中指定的私有 SSL 密钥的加密引擎的标识符。

CURLOPT_SSLENGINE_DEFAULT (int)

用于非对称加密操作的加密引擎标识符。

CURLOPT_SSLKEY (int)

包含私有 SSL 密钥的文件名。

CURLOPT_SSLKEYPASSWD (int)

使用 CURLOPT_SSLKEY 中指定的私有 SSL 密钥所需的秘密密码。

注意:

由于此选项包含敏感密码,请记住将包含它的 PHP 脚本保存安全。

CURLOPT_SSLKEYTYPE (int)

CURLOPT_SSLKEY 中指定的私有 SSL 密钥的密钥类型。支持的密钥类型为 "PEM"(默认)、"DER""ENG"

CURLOPT_SSLKEY_BLOB (int)

来自内存 blob 的客户端证书的私钥。从 PHP 8.1.0 和 cURL 7.71.0 开始可用。

CURLOPT_SSLVERSION (int)

以下之一:CURL_SSLVERSION_DEFAULT, CURL_SSLVERSION_TLSv1, CURL_SSLVERSION_SSLv2, CURL_SSLVERSION_SSLv3, CURL_SSLVERSION_TLSv1_0, CURL_SSLVERSION_TLSv1_1, CURL_SSLVERSION_TLSv1_2, CURL_SSLVERSION_TLSv1_3 . 可以使用 CURL_SSLVERSION_MAX_* 常量之一来设置最大 TLS 版本。也可以将 CURL_SSLVERSION_* 常量之一与 CURL_SSLVERSION_MAX_* 常量之一按位或运算。 CURL_SSLVERSION_MAX_DEFAULT(库支持的最大版本)、CURL_SSLVERSION_MAX_TLSv1_0CURL_SSLVERSION_MAX_TLSv1_1CURL_SSLVERSION_MAX_TLSv1_2CURL_SSLVERSION_MAX_TLSv1_3 .

警告

最好不要设置此选项,并保留默认值。因为将此设置为 CURL_SSLVERSION_SSLv2CURL_SSLVERSION_SSLv3 非常危险,因为 SSLv2 和 SSLv3 中存在已知的漏洞。

CURLOPT_SSL_CIPHER_LIST (int)

用于 SSL 的密码列表。例如,RC4-SHATLSv1 是有效的密码列表。

CURLOPT_SSL_EC_CURVES (int)

以冒号分隔的椭圆曲线算法列表。例如,X25519:P-521 是两个椭圆曲线的有效列表。此选项定义了客户端在 SSL 握手中的密钥交换算法,如果 SSL 后端 cURL 被构建为使用支持它。从 PHP 8.2.0 和 cURL 7.73.0 开始可用

CURLOPT_SSL_ENABLE_ALPN (int)

false 在 SSL 握手(如果 SSL 后端 libcurl 被构建为使用支持它)中禁用 ALPN,这可以用于协商 http2。从 PHP 7.0.7 和 cURL 7.36.0 开始可用

CURLOPT_SSL_ENABLE_NPN (int)

false 在 SSL 握手(如果 SSL 后端 libcurl 被构建为使用支持它)中禁用 NPN,这可以用于协商 http2。从 PHP 7.0.7 和 cURL 7.36.0 开始可用

CURLOPT_SSL_FALSESTART (int)

true 启用 TLS 错误开始。从 PHP 7.0.7 和 cURL 7.42.0 开始可用

CURLOPT_SSL_OPTIONS (int)

设置 SSL 行为选项,它是一个位掩码,由以下常量组成: CURLSSLOPT_ALLOW_BEAST, CURLSSLOPT_NO_REVOKE, CURLSSLOPT_AUTO_CLIENT_CERT, CURLSSLOPT_NATIVE_CA, CURLSSLOPT_NO_PARTIALCHAIN, CURLSSLOPT_REVOKE_BEST_EFFORT 从 PHP 7.0.7 开始可用。和 cURL 7.25.0

CURLOPT_SSL_VERIFYHOST (int)

2 验证 SSL 对等证书中的通用名字段或主题备用名称字段是否与提供的主机名匹配。 0 表示不检查名称。 1 不应使用。在生产环境中,此选项的值应保持为 2(默认值)。cURL 7.28.1 中删除了对值 1 的支持。

CURLOPT_SSL_VERIFYPEER (int)

false 使 cURL 停止验证对等方的证书。可以使用 CURLOPT_CAINFO 选项指定要验证的备用证书,或者可以使用 CURLOPT_CAPATH 选项指定证书目录。从 cURL 7.10 开始默认值为 true。从 cURL 7.10 开始安装默认捆绑包。

CURLOPT_SSL_VERIFYSTATUS (int)

true 验证证书的状态。从 PHP 7.0.7 和 cURL 7.41.0 开始可用

CURLOPT_STDERR (int)

将错误输出到 STDERR 以外的另一个位置。

CURLOPT_STREAM_WEIGHT (int)

设置数值流权重(介于 1 和 256 之间的数字)。从 PHP 7.0.7 和 cURL 7.46.0 开始可用

CURLOPT_SUPPRESS_CONNECT_HEADERS (int)

true 在使用 CURLOPT_HTTPPROXYTUNNEL 并且执行 CONNECT 请求时,从用户回调函数 CURLOPT_HEADERFUNCTIONCURLOPT_WRITEFUNCTION 中抑制代理 CONNECT 响应头。从 PHP 7.3.0 和 cURL 7.54.0 开始可用

CURLOPT_TCP_FASTOPEN (int)

true 启用 TCP 快速打开。从 PHP 7.0.7 和 cURL 7.49.0 开始可用

CURLOPT_TCP_KEEPALIVE (int)

如果设置为 1,则将发送 TCP 保持活动探测。可以使用 CURLOPT_TCP_KEEPIDLECURLOPT_TCP_KEEPINTVL 选项控制这些探测的延迟和频率,前提是操作系统支持它们。如果设置为 0(默认)则禁用保持活动探测。从 cURL 7.25.0 开始可用

CURLOPT_TCP_KEEPIDLE (int)

设置操作系统在连接处于空闲状态时等待发送保持活动探测的延迟(以秒为单位),如果启用了 CURLOPT_TCP_KEEPALIVE。并非所有操作系统都支持此选项。默认值为 60。从 cURL 7.25.0 开始可用

CURLOPT_TCP_KEEPINTVL (int)

设置操作系统在发送保持活动探测之间等待的间隔(以秒为单位),如果启用了 CURLOPT_TCP_KEEPALIVE。并非所有操作系统都支持此选项。默认值为 60。从 cURL 7.25.0 开始可用

CURLOPT_TCP_NODELAY (int)

true 禁用 TCP 的 Nagle 算法,该算法试图将网络上的小数据包数量降至最低。从 cURL 7.11.2 开始可用。

CURLOPT_TFTP_NO_OPTIONS (int)

true 不发送 TFTP 选项请求。从 PHP 7.0.7 和 cURL 7.48.0 开始可用

CURLOPT_TIMECONDITION (int)

如何处理 CURLOPT_TIMEVALUE。使用 CURL_TIMECOND_IFMODSINCE 仅在页面自 CURLOPT_TIMEVALUE 中指定的时间以来已修改时才返回页面。如果它没有被修改,将返回一个 "304 Not Modified" 头,假设 CURLOPT_HEADERtrue。使用 CURL_TIMECOND_IFUNMODSINCE 获得相反的效果。使用 CURL_TIMECOND_NONE 忽略 CURLOPT_TIMEVALUE 并始终返回页面。CURL_TIMECOND_NONE 是默认值。在 cURL 7.46.0 之前,默认值为 CURL_TIMECOND_IFMODSINCE

CURLOPT_TIMEOUT (int)

允许 cURL 函数执行的最大秒数。

CURLOPT_TIMEOUT_MS (int)

允许 cURL 函数执行的最大毫秒数。如果 libcurl 构建为使用标准系统名称解析器,则连接的那部分仍然会使用全秒分辨率来进行超时,最短允许超时时间为一秒。从 cURL 7.16.2 开始可用。

CURLOPT_TIMEVALUE (int)

自 1970 年 1 月 1 日以来的秒数。该时间将被 CURLOPT_TIMECONDITION 使用。

CURLOPT_TIMEVALUE_LARGE (int)

自 1970 年 1 月 1 日以来的秒数。该时间将被 CURLOPT_TIMECONDITION 使用。默认为零。此选项与 CURLOPT_TIMEVALUE 之间的区别在于参数类型。在 'long' 仅为 32 位宽的系统上,必须使用此选项来设置 2038 年以后的日期。从 PHP 7.3.0 和 cURL 7.59.0 开始可用。

CURLOPT_TLS13_CIPHERS (int)

要用于 TLS 1.3 连接的密码套件列表。该列表必须语法正确,它由一个或多个以冒号分隔的密码套件字符串组成。此选项目前仅在 curl 构建为使用 OpenSSL 1.1.1 或更高版本时使用。如果您使用的是不同的 SSL 后端,您可以尝试使用 CURLOPT_SSL_CIPHER_LIST 选项来设置 TLS 1.3 密码套件。在使用 OpenSSL >= 1.1.1 构建时可用。从 PHP 7.3.0 和 cURL 7.61.0 开始可用。

CURLOPT_TRANSFERTEXT (int)

对于 FTP 传输,使用 ASCII 模式。对于 LDAP,它以纯文本而不是 HTML 格式检索数据。在 Windows 系统上,它不会将 STDOUT 设置为二进制模式。

CURLOPT_UNIX_SOCKET_PATH (string)

启用使用 Unix 域套接字作为连接端点,并将路径设置为给定的 string。从 PHP 7.0.7 和 cURL 7.40.0 开始可用。

CURLOPT_UNRESTRICTED_AUTH (int)

即使主机名已更改,也继续在跟随位置(使用 CURLOPT_FOLLOWLOCATION)时发送用户名和密码。

CURLOPT_UPKEEP_INTERVAL_MS (int)

某些协议具有“连接维护”机制。这些机制通常会在现有连接上发送一些流量,以便保持连接活动。此选项定义连接维护间隔。目前,唯一具有连接维护机制的协议是 HTTP/2。当连接维护间隔超过时,将在连接上发送 HTTP/2 PING 帧。默认值为 60 秒。从 PHP 8.2.0 和 cURL 7.62.0 开始可用。

CURLOPT_UPLOAD (int)

准备上传。

CURLOPT_UPLOAD_BUFFERSIZE (int)

cURL 上传缓冲区的首选缓冲区大小(以字节为单位)。默认情况下,上传缓冲区大小为 64 千字节。允许设置的最大缓冲区大小为 2 兆字节。允许设置的最小缓冲区大小为 16 千字节。从 PHP 8.2.0 和 cURL 7.62.0 开始可用。

CURLOPT_URL (int)

要获取的 URL。这也可以在使用 curl_init() 初始化会话时设置。

CURLOPT_USERAGENT (int)

将在 HTTP 请求中使用的 "User-Agent: " 标头的内容。

CURLOPT_USERNAME (int)

用于身份验证的用户名。从 cURL 7.19.1 开始可用。

CURLOPT_USERPWD (int)

用于连接的用户名和密码,格式为 "[username]:[password]"

CURLOPT_VERBOSE (int)

输出详细的信息。将输出写入 STDERR 或使用 CURLOPT_STDERR 指定的文件。

CURLOPT_WRITEFUNCTION (int)

接受两个参数的回调函数。第一个是 cURL 资源,第二个是包含要写入数据的字符串。数据必须由此回调函数保存。它必须返回写入的字节数,否则传输将因错误而中止。

CURLOPT_WRITEHEADER (int)

写入传输的标头部分的文件。

CURLOPT_WS_OPTIONS (int)

自 PHP 8.3.0 和 cURL 7.86.0 版本起可用

CURLOPT_XFERINFOFUNCTION (int)

接受两个参数的回调函数。与 CURLOPT_PROGRESSFUNCTION 的目的类似,但它更现代,是 cURL 中的首选选项。从 PHP 8.2.0 和 cURL 7.32.0 开始可用。

CURLOPT_XOAUTH2_BEARER (int)

指定 OAuth 2.0 访问令牌。从 PHP 7.0.7 和 cURL 7.33.0 开始可用。

curl_share_setopt()
常量 描述
CURL_LOCK_DATA_CONNECT (int) 共享/取消共享连接缓存。从 PHP 7.3.0 和 cURL 7.10.0 开始可用。
共享/取消共享 cookie 数据。
CURL_LOCK_DATA_DNS (int) 共享/取消共享 DNS 缓存。请注意,当您使用 cURL 多路处理句柄时,默认情况下,添加到相同多路处理句柄的所有句柄将共享 DNS 缓存。
CURL_LOCK_DATA_PSL (int) 共享/取消共享公共后缀列表。从 PHP 7.3.0 和 cURL 7.61.0 开始可用。
CURL_LOCK_DATA_SSL_SESSION (int) 共享/取消共享 SSL 会话 ID,从而减少在重新连接到同一服务器时 SSL 握手所花费的时间。请注意,SSL 会话 ID 默认情况下会在同一个句柄内重用。
CURLSHOPT_NONE (int)
CURLSHOPT_SHARE (int) 指定应共享的数据类型。
CURLSHOPT_UNSHARE (int) 指定不再共享的数据类型。
curl_getinfo()
常量 描述
CURLINFO_APPCONNECT_TIME (int) 从开始到完成与远程主机的 SSL/SSH 连接/握手所花费的秒数。
CURLINFO_APPCONNECT_TIME_T (int) 从开始到完成与远程主机的 SSL/SSH 连接/握手所花费的微秒数。从 PHP 7.3.0 和 cURL 7.61.0 开始可用。
CURLINFO_CAINFO (int) 默认内置 CA 证书路径。从 PHP 8.3.0 和 cURL 7.84.0 开始可用。
CURLINFO_CAPATH (int) 默认内置 CA 路径字符串。从 PHP 8.3.0 和 cURL 7.84.0 开始可用。
CURLINFO_CERTINFO (int) TLS 证书链
CURLINFO_CONDITION_UNMET (int) 关于未满足的时间条件的信息。
CURLINFO_CONNECT_TIME (int) 建立连接所花费的秒数。
CURLINFO_CONNECT_TIME_T (int) 从开始到完成与远程主机(或代理)的连接所花费的总时间(以微秒为单位)。从 PHP 7.3.0 和 cURL 7.61.0 开始可用。
CURLINFO_CONTENT_LENGTH_DOWNLOAD (int) 下载的内容长度,从 Content-Length: 字段读取。
CURLINFO_CONTENT_LENGTH_DOWNLOAD_T (int) 下载的内容长度。这是从 Content-Length: 字段读取的值。如果大小未知,则为 -1。从 PHP 7.3.0 和 cURL 7.55.0 开始可用。
CURLINFO_CONTENT_LENGTH_UPLOAD (int) 指定上传的大小。
CURLINFO_CONTENT_LENGTH_UPLOAD_T (int) 指定的上传大小。如果大小未知,则为 -1。从 PHP 7.3.0 和 cURL 7.55.0 开始可用。
CURLINFO_CONTENT_TYPE (int) 请求文档的 Content-Type。NULL 表示服务器没有发送有效的 Content-Type 标头。
CURLINFO_COOKIELIST (int) 所有已知的 cookie。
CURLINFO_EFFECTIVE_METHOD (int) 获取最后使用的 HTTP 方法。
CURLINFO_EFFECTIVE_URL (int) 最后的有效 URL。
CURLINFO_FILETIME (int) 获取到的文档的远程时间,在CURLOPT_FILETIME 启用时;如果返回 -1,则文档时间未知
CURLINFO_FILETIME_T (int) 获取到的文档的远程时间(作为 Unix 时间戳),是CURLINFO_FILETIME 的替代方案,允许具有 32 位长变量的系统提取超出 32 位时间戳范围的日期。从 PHP 7.3.0 和 cURL 7.59.0 开始可用
CURLINFO_FTP_ENTRY_PATH (int) FTP 服务器中的条目路径
CURLINFO_HEADER_OUT (int) 发送的请求字符串。要使此功能正常工作,请通过调用 curl_setopt()CURLINFO_HEADER_OUT 选项添加到句柄
CURLINFO_HEADER_SIZE (int) 接收到的所有报头的总大小
CURLINFO_HTTPAUTH_AVAIL (int) 位掩码,指示根据先前响应可用的身份验证方法
CURLINFO_HTTP_CODE (int) 最后一个响应代码。从 cURL 7.10.8 开始,这是CURLINFO_RESPONSE_CODE 的一个旧版别名。
CURLINFO_HTTP_CONNECTCODE (int) CONNECT 响应代码
CURLINFO_HTTP_VERSION (int) 上次 HTTP 连接中使用的版本。返回值将是定义的CURL_HTTP_VERSION_* 常量之一,如果无法确定版本,则为 0。从 PHP 7.3.0 和 cURL 7.50.0 开始可用
CURLINFO_LASTONE (int) libcurl 中底层 CURLINFO 枚举中的最后一个枚举值。
CURLINFO_LOCAL_IP (int) 最近连接的本地(源)IP 地址
CURLINFO_LOCAL_PORT (int) 最近连接的本地(源)端口
CURLINFO_NAMELOOKUP_TIME (int) 名称解析完成之前的时间(以秒为单位)
CURLINFO_NAMELOOKUP_TIME_T (int) 从开始到名称解析完成为止的时间(以微秒为单位)。从 PHP 7.3.0 和 cURL 7.61.0 开始可用
CURLINFO_NUM_CONNECTS (int) curl 为实现上一次传输而必须创建的连接数
CURLINFO_OS_ERRNO (int) 连接失败的 Errno。该数字是特定于操作系统和系统的。
CURLINFO_PRETRANSFER_TIME (int) 从开始到文件传输开始之前的时间(以秒为单位)
CURLINFO_PRETRANSFER_TIME_T (int) 从开始到文件传输即将开始的时间(以微秒为单位)。从 PHP 7.3.0 和 cURL 7.61.0 开始可用
CURLINFO_PRIMARY_IP (int) 最近连接的 IP 地址
CURLINFO_PRIMARY_PORT (int) 最近连接的目标端口
CURLINFO_PRIVATE (int) 与此 cURL 句柄关联的私有数据,之前使用 curl_setopt()CURLOPT_PRIVATE 选项设置
CURLINFO_PROTOCOL (int) 上次 HTTP 连接中使用的 URL 方案。返回值将恰好是CURLPROTO_* 值之一。从 PHP 7.3.0 和 cURL 7.52.0 开始可用
CURLINFO_PROXYAUTH_AVAIL (int) 位掩码,指示根据先前响应可用的代理身份验证方法
CURLINFO_PROXY_ERROR (int) 当最近一次传输返回CURLE_PROXY 错误时,详细的(SOCKS)代理错误代码。返回值将恰好是CURLPX_* 值之一。如果响应代码不可用,则错误代码将为CURLPX_OK。从 PHP 8.2.0 和 cURL 7.73.0 开始可用
CURLINFO_PROXY_SSL_VERIFYRESULT (int) 请求的证书验证的结果(使用CURLOPT_PROXY_SSL_VERIFYPEER 选项)。仅用于 HTTPS 代理。从 PHP 7.3.0 和 cURL 7.52.0 开始可用
CURLINFO_REDIRECT_COUNT (int) 重定向次数,在CURLOPT_FOLLOWLOCATION 选项启用时
CURLINFO_REDIRECT_TIME (int) 所有重定向步骤的时间(以秒为单位),在最终事务开始之前,在CURLOPT_FOLLOWLOCATION 选项启用时
CURLINFO_REDIRECT_TIME_T (int) 所有重定向步骤(包括名称查找、连接、预传输和传输)所花费的总时间(以微秒为单位),在最终事务开始之前。从 PHP 7.3.0 和 cURL 7.61.0 开始可用
CURLINFO_REDIRECT_URL (int) CURLOPT_FOLLOWLOCATION 选项禁用时:上次事务中找到的重定向 URL,应该在下一次手动请求。在CURLOPT_FOLLOWLOCATION 选项启用时:此项为空。在这种情况下,重定向 URL 在CURLINFO_EFFECTIVE_URL 中可用
CURLINFO_REFERER (int) Referer 标头。从 PHP 8.2.0 和 cURL 7.76.0 开始可用
CURLINFO_REQUEST_SIZE (int) 已发出请求的总大小,目前仅适用于 HTTP 请求
CURLINFO_RESPONSE_CODE (int) 最后一个响应代码。从 cURL 7.10.8 开始可用
CURLINFO_RETRY_AFTER (int) Retry-After 标头中的信息,如果不存在有效标头,则为零。从 PHP 8.2.0 和 cURL 7.66.0 开始可用
CURLINFO_RTSP_CLIENT_CSEQ (int) 下一个 RTSP 客户端 CSeq
CURLINFO_RTSP_CSEQ_RECV (int) 最近收到的 CSeq
CURLINFO_RTSP_SERVER_CSEQ (int) 下一个 RTSP 服务器 CSeq
CURLINFO_RTSP_SESSION_ID (int) RTSP 会话 ID
CURLINFO_SCHEME (int) 最近连接中使用的 URL 方案。从 PHP 7.3.0 和 cURL 7.52.0 开始可用
CURLINFO_SIZE_DOWNLOAD (int) 下载的字节总数
CURLINFO_SIZE_DOWNLOAD_T (int) 下载的字节总数。该数字仅适用于最新传输,并将为每次新的传输重置。从 PHP 7.3.0 和 cURL 7.50.0 开始可用
CURLINFO_SIZE_UPLOAD (int) 上传的字节总数
CURLINFO_SIZE_UPLOAD_T (int) 上传的字节总数。从 PHP 7.3.0 和 cURL 7.50.0 开始可用
CURLINFO_SPEED_DOWNLOAD (int) 平均下载速度
CURLINFO_SPEED_DOWNLOAD_T (int) curl 测量的完整下载的平均下载速度(以字节/秒为单位)。从 PHP 7.3.0 和 cURL 7.50.0 开始可用
CURLINFO_SPEED_UPLOAD (int) 平均上传速度
CURLINFO_SPEED_UPLOAD_T (int) curl 测量的完整上传的平均上传速度(以字节/秒为单位)。从 PHP 7.3.0 和 cURL 7.50.0 开始可用
CURLINFO_SSL_ENGINES (int) 支持的 OpenSSL 加密引擎
CURLINFO_SSL_VERIFYRESULT (int) 通过设置CURLOPT_SSL_VERIFYPEER 请求的 SSL 证书验证的结果
CURLINFO_STARTTRANSFER_TIME (int) 第一个字节开始传输前的时间(秒)
CURLINFO_STARTTRANSFER_TIME_T (int) 从开始到收到第一个字节所花费的时间(微秒)。自 PHP 7.3.0 和 cURL 7.61.0 起可用。
CURLINFO_TOTAL_TIME (int) 最后一次传输的总交易时间(秒)
CURLINFO_TOTAL_TIME_T (int) 先前传输的总时间(微秒),包括域名解析、TCP 连接等。自 PHP 7.3.0 和 cURL 7.61.0 起可用。
curl_multi_setopt()
常量 描述
CURLMOPT_CHUNK_LENGTH_PENALTY_SIZE (int) 指定管道传输的块长度阈值(字节)。自 PHP 7.0.7 和 cURL 7.30.0 起可用。
CURLMOPT_CONTENT_LENGTH_PENALTY_SIZE (int) 指定管道传输惩罚的大小阈值(字节)。自 PHP 7.0.7 和 cURL 7.30.0 起可用。
CURLMOPT_MAXCONNECTS (int) 指定 libcurl 可以缓存的最多同时打开的连接数。默认情况下,大小将增大到 curl_multi_add_handle() 添加的句柄数量的四倍。当缓存已满时,curl 会关闭缓存中最旧的连接,以防止打开的连接数增加。自 cURL 7.16.3 起可用。
CURLMOPT_MAX_CONCURRENT_STREAMS (int) 指定 cURL 在使用 HTTP/2 的连接上应支持的并发流的最大数量。有效值范围为 12147483647 (2^31 - 1)。传递的值将根据其他系统资源属性进行遵守。默认值为 100。自 PHP 8.2.0 和 cURL 7.67.0 起可用。
CURLMOPT_MAX_HOST_CONNECTIONS (int) 指定到单个主机的最大连接数。自 PHP 7.0.7 和 cURL 7.30.0 起可用。
CURLMOPT_MAX_PIPELINE_LENGTH (int) 指定管道中的最大请求数。自 PHP 7.0.7 和 cURL 7.30.0 起可用。
CURLMOPT_MAX_TOTAL_CONNECTIONS (int) 指定同时打开的连接的最大数量。自 PHP 7.0.7 和 cURL 7.30.0 起可用。
CURLMOPT_PIPELINING (int) 传递 1 以启用或 0 以禁用。在多句柄上启用管道传输将使它尽最大可能尝试对使用此句柄的传输执行 HTTP 管道传输。这意味着添加第二个可以使用已存在连接的请求将“管道传输”第二个请求到同一个连接。自 cURL 7.43.0 起,该值是位掩码,传递 2 将尝试在已存在的 HTTP/2 连接上多路复用新的传输。传递 3 指示 cURL 独立地请求管道传输和多路复用。自 cURL 7.62.0 起,设置管道传输位没有效果。除了整数字面量之外,还可以使用 CURLPIPE_* 常量。自 cURL 7.16.0 起可用。
CURLMOPT_PUSHFUNCTION (int)

传递一个 callable,它将被注册以处理服务器推送,并且应具有以下签名

pushfunction(resource $parent_ch, resource $pushed_ch, array $headers): int
parent_ch
父 cURL 句柄(客户端发出的请求)。
pushed_ch
推送请求的新 cURL 句柄。
headers
推送承诺头信息。
推送函数应该返回 CURL_PUSH_OK(如果它可以处理推送),或者 CURL_PUSH_DENY(拒绝推送)。自 PHP 7.1.0 和 cURL 7.44.0 起可用。

cURL 协议常量
常量 描述
CURLPROTO_ALL (int)
CURLPROTO_DICT (int)
CURLPROTO_FILE (int)
CURLPROTO_FTP (int)
CURLPROTO_FTPS (int)
CURLPROTO_GOPHER (int)
CURLPROTO_HTTP (int)
CURLPROTO_HTTPS (int)
CURLPROTO_IMAP (int)
CURLPROTO_IMAPS (int)
CURLPROTO_LDAP (int)
CURLPROTO_LDAPS (int)
CURLPROTO_MQTT (int) 自 PHP 8.2.0 和 cURL 7.71.0 起可用。
CURLPROTO_POP3 (int)
CURLPROTO_POP3S (int)
CURLPROTO_RTMP (int)
CURLPROTO_RTMPE (int)
CURLPROTO_RTMPS (int)
CURLPROTO_RTMPT (int)
CURLPROTO_RTMPTE (int)
CURLPROTO_RTMPTS (int)
CURLPROTO_RTSP (int)
CURLPROTO_SCP (int)
CURLPROTO_SFTP (int)
CURLPROTO_SMB (int) 自 PHP 7.0.7 和 cURL 7.40.0 起可用。
CURLPROTO_SMBS (int) 自 PHP 7.0.7 和 cURL 7.40.0 起可用。
CURLPROTO_SMTP (int)
CURLPROTO_SMTPS (int)
CURLPROTO_TELNET (int)
CURLPROTO_TFTP (int)
cURL 错误常量
常量 描述
CURLE_ABORTED_BY_CALLBACK (int) 回调函数终止。回调函数向 libcurl 返回了“终止”。
CURLE_BAD_CALLING_ORDER (int)
CURLE_BAD_CONTENT_ENCODING (int) 无法识别的传输编码。
CURLE_BAD_DOWNLOAD_RESUME (int) 由于指定的偏移量超出了文件边界,因此无法恢复下载。
CURLE_BAD_FUNCTION_ARGUMENT (int) 函数调用时参数错误。
CURLE_BAD_PASSWORD_ENTERED (int)
CURLE_COULDNT_CONNECT (int) 无法连接到主机或代理。
CURLE_COULDNT_RESOLVE_HOST (int) 无法解析主机。给定的远程主机未解析。
CURLE_COULDNT_RESOLVE_PROXY (int) 无法解析代理。给定的代理主机无法解析。
CURLE_FAILED_INIT (int) 早期初始化代码失败。这很可能是内部错误或问题,或者资源问题,其中某些基本操作在初始化时无法完成。
CURLE_FILESIZE_EXCEEDED (int) 超过最大文件大小。
CURLE_FILE_COULDNT_READ_FILE (int) 无法打开使用 FILE:// 给定的文件。最可能的原因是文件路径不识别现有文件,或者缺少适当的文件权限。
CURLE_FTP_ACCESS_DENIED (int)
CURLE_FTP_BAD_DOWNLOAD_RESUME (int)
CURLE_FTP_CANT_GET_HOST (int) 查找用于新连接的主机时出现内部错误。
CURLE_FTP_CANT_RECONNECT (int)
CURLE_FTP_COULDNT_GET_SIZE (int)
CURLE_FTP_COULDNT_RETR_FILE (int) 这可能是对“RETR”命令的意外回复,或者是一个零字节传输完成。
CURLE_FTP_COULDNT_SET_ASCII (int)
CURLE_FTP_COULDNT_SET_BINARY (int)
CURLE_FTP_COULDNT_STOR_FILE (int)
CURLE_FTP_COULDNT_USE_REST (int) FTP REST 命令返回错误。如果服务器正常,这种情况永远不会发生。
CURLE_FTP_PARTIAL_FILE (int)
CURLE_FTP_PORT_FAILED (int) FTP PORT 命令返回错误。这通常发生在没有为 libcurl 指定足够好的地址时。请参阅CURLOPT_FTPPORT
CURLE_FTP_QUOTE_ERROR (int)
CURLE_FTP_SSL_FAILED (int)
CURLE_FTP_USER_PASSWORD_INCORRECT (int)
CURLE_FTP_WEIRD_227_FORMAT (int) FTP 服务器在对 PASV 命令的响应中返回 227 行。如果 libcurl 无法解析该行,则会返回此代码。
CURLE_FTP_WEIRD_PASS_REPLY (int) 在将 FTP 密码发送到服务器后,libcurl 预期会收到适当的回复。此错误代码表示返回了意外代码。
CURLE_FTP_WEIRD_PASV_REPLY (int) libcurl 无法从服务器获得合理的响应,作为对 PASV 或 EPSV 命令的响应。服务器有缺陷。
CURLE_FTP_WEIRD_SERVER_REPLY (int) 服务器发送了 libcurl 无法解析的数据。此错误代码在 cURL 7.51.0 中被称为CURLE_WEIRD_SERVER_REPLY
CURLE_FTP_WEIRD_USER_REPLY (int)
CURLE_FTP_WRITE_ERROR (int)
CURLE_FUNCTION_NOT_FOUND (int) 未找到函数。未找到所需的 zlib 函数。
CURLE_GOT_NOTHING (int) 服务器没有返回任何内容,在这种情况下,没有得到任何东西被认为是错误。
CURLE_HTTP_NOT_FOUND (int)
CURLE_HTTP_PORT_FAILED (int)
CURLE_HTTP_POST_ERROR (int) 这是一个奇怪的错误,主要是因为内部混淆。
CURLE_HTTP_RANGE_ERROR (int)
CURLE_HTTP_RETURNED_ERROR (int) 如果CURLOPT_FAILONERROR 设置为true 且 HTTP 服务器返回的错误代码大于或等于 400,则会返回此代码。
CURLE_LDAP_CANNOT_BIND (int) LDAP 无法绑定。LDAP 绑定操作失败。
CURLE_LDAP_INVALID_URL (int)
CURLE_LDAP_SEARCH_FAILED (int) LDAP 搜索失败。
CURLE_LIBRARY_NOT_FOUND (int)
CURLE_MALFORMAT_USER (int)
CURLE_OBSOLETE (int)
CURLE_OK (int) 一切正常。照常继续。
CURLE_OPERATION_TIMEDOUT (int) 操作超时。根据条件,指定的超时时间已到。
CURLE_OPERATION_TIMEOUTED (int)
CURLE_OUT_OF_MEMORY (int) 内存分配请求失败。
CURLE_PARTIAL_FILE (int) 文件传输比预期短或长。当服务器首先报告预期的传输大小,然后提供与先前给定的大小不匹配的数据时,就会发生这种情况。
CURLE_PROXY (int) 代理握手错误。CURLINFO_PROXY_ERROR 提供有关特定问题的更多详细信息。自 PHP 8.2.0 和 cURL 7.73.0 起可用
CURLE_READ_ERROR (int) 读取本地文件时出现问题或读取回调返回错误。
CURLE_RECV_ERROR (int) 接收网络数据失败。
CURLE_SEND_ERROR (int) 发送网络数据失败。
CURLE_SHARE_IN_USE (int)
CURLE_SSH (int) 在 SSH 会话期间发生未指定的错误。自 cURL 7.16.1 起可用。
CURLE_SSL_CACERT (int)
CURLE_SSL_CACERT_BADFILE (int) 读取 SSL CA 证书时出现问题。
CURLE_SSL_CERTPROBLEM (int) 本地客户端证书出现问题。
CURLE_SSL_CIPHER (int) 无法使用指定的密码。
CURLE_SSL_CONNECT_ERROR (int) SSL/TLS 握手过程中出现问题。读取错误缓冲区中的消息可提供有关问题的更多详细信息。可能是证书(文件格式、路径、权限)、密码等。
CURLE_SSL_ENGINE_NOTFOUND (int) 未找到指定的加密引擎。
CURLE_SSL_ENGINE_SETFAILED (int) 将选定的 SSL 加密引擎设置为默认引擎失败。
CURLE_SSL_PEER_CERTIFICATE (int)
CURLE_SSL_PINNEDPUBKEYNOTMATCH (int) 无法与使用CURLOPT_PINNEDPUBLICKEY 指定的固定密钥匹配。
CURLE_TELNET_OPTION_SYNTAX (int)
CURLE_TOO_MANY_REDIRECTS (int) 重定向次数过多。在跟踪重定向时,libcurl 遇到了最大次数。可以使用CURLOPT_MAXREDIRS 设置限制。
CURLE_UNKNOWN_TELNET_OPTION (int)
CURLE_UNSUPPORTED_PROTOCOL (int) 传递给 libcurl 的 URL 使用了 libcurl 不支持的协议。问题可能是未使用的编译时选项、拼写错误的协议字符串,或者 libcurl 没有代码的协议。
CURLE_URL_MALFORMAT (int) URL 格式不正确。
CURLE_URL_MALFORMAT_USER (int)
CURLE_WEIRD_SERVER_REPLY (int) 服务器发送了 libcurl 无法解析的数据。此错误代码在 cURL 7.51.0 之前被称为CURLE_FTP_WEIRD_SERVER_REPLY。自 PHP 7.3.0 和 cURL 7.51.0 起可用
CURLE_WRITE_ERROR (int) 将接收到的数据写入本地文件时出错,或写入回调向 libcurl 返回错误。
curl_multi_ * 状态常量
常量 描述
CURLM_ADDED_ALREADY (int) 尝试将已添加到多句柄的易句柄再次添加。从 cURL 7.32.1 开始可用。
CURLM_BAD_EASY_HANDLE (int) 易句柄无效。这可能意味着它根本不是易句柄,或者可能是此句柄或其他多句柄正在使用此句柄。
CURLM_BAD_HANDLE (int) 传入的句柄不是有效的多句柄。
CURLM_CALL_MULTI_PERFORM (int) 从 cURL 7.20.0 开始,此常量不再使用。在 cURL 7.20.0 之前,此状态可能由 curl_multi_exec() 返回,当 curl_multi_select() 或类似函数在返回任何其他常量之前被调用时。
CURLM_INTERNAL_ERROR (int) 内部 libcurl 错误。
CURLM_OK (int) 没有错误。
CURLM_OUT_OF_MEMORY (int) 处理多句柄时内存不足。
curl_pause()
常量 描述
CURLPAUSE_ALL (int) 暂停发送和接收数据。从 cURL 7.18.0 开始可用。
CURLPAUSE_CONT (int) 恢复发送和接收数据。从 cURL 7.18.0 开始可用。
CURLPAUSE_RECV (int) 暂停接收数据。从 cURL 7.18.0 开始可用。
CURLPAUSE_RECV_CONT (int) 恢复接收数据。从 cURL 7.18.0 开始可用。
CURLPAUSE_SEND (int) 暂停发送数据。从 cURL 7.18.0 开始可用。
CURLPAUSE_SEND_CONT (int) 恢复发送数据。从 cURL 7.18.0 开始可用。
添加注释

用户贡献注释 5 个注释

nimasdj [AT] yahoo [DOT] com
9 年前
我希望这将有助于转换错误代码

<?php
$curl_errno
= array(
1 => "CURLE_UNSUPPORTED_PROTOCOL",
2 => "CURLE_FAILED_INIT",
3 => "CURLE_URL_MALFORMAT",
4 => "CURLE_URL_MALFORMAT_USER",
5 => "CURLE_COULDNT_RESOLVE_PROXY",
6 => "CURLE_COULDNT_RESOLVE_HOST",
7 => "CURLE_COULDNT_CONNECT",
8 => "CURLE_FTP_WEIRD_SERVER_REPLY",
9 => "CURLE_FTP_ACCESS_DENIED",
10 => "CURLE_FTP_USER_PASSWORD_INCORRECT",
11 => "CURLE_FTP_WEIRD_PASS_REPLY",
12 => "CURLE_FTP_WEIRD_USER_REPLY",
13 => "CURLE_FTP_WEIRD_PASV_REPLY",
14 => "CURLE_FTP_WEIRD_227_FORMAT",
15 => "CURLE_FTP_CANT_GET_HOST",
16 => "CURLE_FTP_CANT_RECONNECT",
17 => "CURLE_FTP_COULDNT_SET_BINARY",
18 => "CURLE_FTP_PARTIAL_FILE or CURLE_PARTIAL_FILE",
19 => "CURLE_FTP_COULDNT_RETR_FILE",
20 => "CURLE_FTP_WRITE_ERROR",
21 => "CURLE_FTP_QUOTE_ERROR",
22 => "CURLE_HTTP_NOT_FOUND or CURLE_HTTP_RETURNED_ERROR",
23 => "CURLE_WRITE_ERROR",
24 => "CURLE_MALFORMAT_USER",
25 => "CURLE_FTP_COULDNT_STOR_FILE",
26 => "CURLE_READ_ERROR",
27 => "CURLE_OUT_OF_MEMORY",
28 => "CURLE_OPERATION_TIMEDOUT or CURLE_OPERATION_TIMEOUTED",
29 => "CURLE_FTP_COULDNT_SET_ASCII",
30 => "CURLE_FTP_PORT_FAILED",
31 => "CURLE_FTP_COULDNT_USE_REST",
32 => "CURLE_FTP_COULDNT_GET_SIZE",
33 => "CURLE_HTTP_RANGE_ERROR",
34 => "CURLE_HTTP_POST_ERROR",
35 => "CURLE_SSL_CONNECT_ERROR",
36 => "CURLE_BAD_DOWNLOAD_RESUME or CURLE_FTP_BAD_DOWNLOAD_RESUME",
37 => "CURLE_FILE_COULDNT_READ_FILE",
38 => "CURLE_LDAP_CANNOT_BIND",
39 => "CURLE_LDAP_SEARCH_FAILED",
40 => "CURLE_LIBRARY_NOT_FOUND",
41 => "CURLE_FUNCTION_NOT_FOUND",
42 => "CURLE_ABORTED_BY_CALLBACK",
43 => "CURLE_BAD_FUNCTION_ARGUMENT",
44 => "CURLE_BAD_CALLING_ORDER",
45 => "CURLE_HTTP_PORT_FAILED",
46 => "CURLE_BAD_PASSWORD_ENTERED",
47 => "CURLE_TOO_MANY_REDIRECTS",
48 => "CURLE_UNKNOWN_TELNET_OPTION",
49 => "CURLE_TELNET_OPTION_SYNTAX",
50 => "CURLE_OBSOLETE",
51 => "CURLE_SSL_PEER_CERTIFICATE",
52 => "CURLE_GOT_NOTHING",
53 => "CURLE_SSL_ENGINE_NOTFOUND",
54 => "CURLE_SSL_ENGINE_SETFAILED",
55 => "CURLE_SEND_ERROR",
56 => "CURLE_RECV_ERROR",
57 => "CURLE_SHARE_IN_USE",
58 => "CURLE_SSL_CERTPROBLEM",
59 => "CURLE_SSL_CIPHER",
60 => "CURLE_SSL_CACERT",
61 => "CURLE_BAD_CONTENT_ENCODING",
62 => "CURLE_LDAP_INVALID_URL",
63 => "CURLE_FILESIZE_EXCEEDED",
64 => "CURLE_FTP_SSL_FAILED",
79 => "CURLE_SSH"
);
?>
uramihsayibok, gmail, com
8 年前
关于 CURLE_OPERATION_TIMEDOUT 与 CURLE_OPERATION_TIMEOUTED

最初,cURL 的常量名为 TIMEOUTED(读作:"timeout-ed")。这在 2007 年和 v7.17.0 中更改为[1] TIMEDOUT(读作:"timed out"),并将旧常量保留为别名。

PHP 也从 TIMEOUTED 开始。TIMEDOUT 常量在 2012 年和 v5.5.0 中添加[2],并将旧常量 *保留在原处*。

如果您问我,TIMEDOUT 常量的读起来更顺畅(更不用说它在技术上是应该使用的正确常量了),只要您使用的是 PHP 5.5+,它就可用。如果您必须支持旧版本,我建议您继续使用新常量并添加一个 polyfill,例如

<?php
if (version_compare(PHP_VERSION, "5.5.0", "<")) {
define("CURLE_OPERATION_TIMEDOUT", CURLE_OPERATION_TIMEOUTED);
}
?>

或者

<?php
// PHP <5.5.0
defined("CURLE_OPERATION_TIMEDOUT") || define("CURLE_OPERATION_TIMEDOUT", CURLE_OPERATION_TIMEOUTED);
?>

一旦您停止支持这些版本,就可以将其删除。

[1] https://github.com/bagder/curl/commit/9f44a95522162c0f4a61093efe1bf1f58b087358#diff-d8c6cb80505e0f7d5e27fca2a682aa34L119
[2] https://github.com/php/php-src/commit/9ab45d3edbafa3ee751472c3f8d1fb3f51f38cf1#diff-ac978e3de205f1d14eb960e0eb15ef24R723
s dot coletta at unidata dot it
14 年前
注意 CURLE_* 常量!

在官方网站上

http://curl.haxx.se/libcurl/c/libcurl-errors.html

某些常量不同,一些常量与 PHP 实现相比缺少。

一些例子

在 PHP 中,curl 错误号 28 称为

CURLE_OPERATION_TIMEOUTED

而在官方网站上是

CURLE_OPERATION_TIMEDOUT

因此,如果您使用第二个,它将无法匹配错误 28,因为在 PHP 中它没有以这种方式定义。

以下也是如此

CURLE_HTTP_RETURNED_ERROR
CURLE_UPLOAD_FAILED
CURLE_INTERFACE_FAILED
CURLE_SSL_CERTPROBLEM
CURLE_SEND_FAIL_REWIND
CURLE_LOGIN_DENIED
CURLE_AGAIN

这些在某种程度上命名不同或在 PHP 中缺失。
Ron
17 年前
<?
/*
* 作者:Ron
* 发布日期:2007 年 8 月 4 日
* 描述:使用伪造的用户代理和伪造的标头,disguise_curl() 函数的示例,用于从网站抓取内容,同时保持完全伪装。
*/

$url = 'http://www.ericgiguere.com/tools/http-header-viewer.html';

// 使用伪造的标头和伪造的用户代理伪装 curl。
function disguise_curl($url)
{
$curl = curl_init();

// 设置标头 - 我使用了 Firefox 版本 2.0.0.6 中的相同标头
// 以下内容被拆分,因为 php.net 说这一行太长了。 :/
$header[0] = "Accept: text/xml,application/xml,application/xhtml+xml,";
$header[0] .= "text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5";
$header[] = "Cache-Control: max-age=0";
$header[] = "Connection: keep-alive";
$header[] = "Keep-Alive: 300";
$header[] = "Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7";
$header[] = "Accept-Language: en-us,en;q=0.5";
$header[] = "Pragma: "; // 浏览器保持为空。

curl_setopt($curl, CURLOPT_URL, $url);
curl_setopt($curl, CURLOPT_USERAGENT, 'Googlebot/2.1 (+http://www.google.com/bot.html)');
curl_setopt($curl, CURLOPT_HTTPHEADER, $header);
curl_setopt($curl, CURLOPT_REFERER, 'http://www.google.com');
curl_setopt($curl, CURLOPT_ENCODING, 'gzip,deflate');
curl_setopt($curl, CURLOPT_AUTOREFERER, true);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curl, CURLOPT_TIMEOUT, 10);

$html = curl_exec($curl); // 执行 curl 命令
curl_close($curl); // 关闭连接

return $html; // 最后,返回 $html
}

// 使用该函数并显示网站上的文本
$text = disguise_curl($url);
echo $text;
?>

~Ron
jrschlosser
6 年前
在 PHP 版本 7.1.11 中,还有 HTTP/2 的常量
CURL_VERSION_HTTP2 = 65536 (1 << 16)
CURL_HTTP_VERSION_2_0 = 3

我不知道定义它的第一个 PHP 版本。
To Top