PHP Conference Japan 2024

预定义常量

以下常量由此扩展定义,只有在将扩展编译到 PHP 中或在运行时动态加载时才可用。

这些常量的描述和用法在curl_setopt()curl_multi_setopt()curl_getinfo()文档中进行了描述。

常量 描述
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 起可用。
CURLAUTH_ANY (int)
CURLAUTH_ANYSAFE (int)
CURLAUTH_AWS_SIGV4 (int) 自 PHP 8.2.0 和 cURL 7.75.0 起可用。
CURLAUTH_BASIC (int)
CURLAUTH_BEARER (int) 自 PHP 7.3.0 和 cURL 7.61.0 起可用。
CURLAUTH_DIGEST (int)
CURLAUTH_DIGEST_IE (int) 使用具有 IE 风格的 HTTP Digest 身份验证。自 cURL 7.19.3 起可用。
CURLAUTH_GSSAPI (int) 自 PHP 7.3.0 和 cURL 7.54.1 起可用
CURLAUTH_GSSNEGOTIATE (int)
CURLAUTH_NEGOTIATE (int) 自 PHP 7.0.7 和 cURL 7.38.0 起可用。
CURLAUTH_NONE (int) 自 cURL 7.10.6 起可用。
CURLAUTH_NTLM (int)
CURLAUTH_NTLM_WB (int) 自 PHP 7.0.7 和 cURL 7.22.0 起可用
CURLAUTH_ONLY (int) 这是一个元符号。将此值与单个特定身份验证值一起使用,以强制 libcurl 探测不受限制的身份验证,如果不行,则只有该单个身份验证算法是可接受的。自 cURL 7.21.3 起可用。
CURLFTPAUTH_DEFAULT (int)
CURLFTPAUTH_SSL (int)
CURLFTPAUTH_TLS (int)
CURLFTPMETHOD_DEFAULT (int) 自 PHP 8.2.0 和 cURL 7.15.3 起可用。
CURLFTPMETHOD_MULTICWD (int) 对给定 URL 中每个路径部分执行单个CWD操作。自 cURL 7.15.3 起可用。
CURLFTPMETHOD_NOCWD (int) libcurl 完全不执行CWD。libcurl 执行SIZERETRSTOR等,并为所有这些命令向服务器提供完整路径。自 cURL 7.15.3 起可用。
CURLFTPMETHOD_SINGLECWD (int) libcurl 使用完整的目标目录执行一次CWD,然后像在 multicwd 案例中一样对文件进行操作。自 cURL 7.15.3 起可用。
CURLFTPSSL_ALL (int)
CURLFTPSSL_CCC_ACTIVE (int) 启动关闭并等待回复。自 cURL 7.16.2 起可用。
CURLFTPSSL_CCC_NONE (int) 不要尝试使用 CCC(清除命令通道)。自 cURL 7.16.2 起可用。
CURLFTPSSL_CCC_PASSIVE (int) 不要启动关闭,而是等待服务器执行关闭。不要发送回复。自 cURL 7.16.1 起可用。
CURLFTPSSL_CONTROL (int)
CURLFTPSSL_NONE (int)
CURLFTPSSL_TRY (int)
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 起可用
CURLGSSAPI_DELEGATION_FLAG (int) 允许无条件的 GSSAPI 凭据委派。自 cURL 7.22.0 起可用。
CURLGSSAPI_DELEGATION_POLICY_FLAG (int) 仅当服务票证中设置了OK-AS-DELEGATE标志时才委派,如果 GSS-API 实现支持此功能并且在编译时可以使用GSS_C_DELEG_POLICY_FLAG的定义。自 cURL 7.22.0 起可用。
CURLHEADER_SEPARATE (int) 自 PHP 7.0.7 和 cURL 7.37.0 起可用。
CURLHEADER_UNIFIED (int) 自 PHP 7.0.7 和 cURL 7.37.0 起可用。
CURLHSTS_ENABLE (int) 自 PHP 8.2.0 和 cURL 7.74.0 起可用
CURLHSTS_READONLYFILE (int) 自 PHP 8.2.0 和 cURL 7.74.0 起可用
CURLKHMATCH_LAST (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_OK (int) 自 PHP 8.3.0 和 cURL 7.19.6 起可用
CURLMIMEOPT_FORMESCAPE (int) 自 PHP 8.3.0 和 cURL 7.81.0 起可用
CURLMSG_DONE (int)
CURLPIPE_HTTP1 (int) 自 cURL 7.43.0 起可用。
CURLPIPE_MULTIPLEX (int) 自 cURL 7.43.0 起可用。
CURLPIPE_NOTHING (int) 自 cURL 7.43.0 起可用。
CURLPROXY_HTTP (int) 自 cURL 7.10 起可用。
CURLPROXY_HTTPS (int) 自 PHP 7.3.0 和 cURL 7.52.0 起可用
CURLPROXY_HTTP_1_0 (int) 自 PHP 7.0.7 和 cURL 7.19.3 起可用
CURLPROXY_SOCKS4 (int) 自 cURL 7.10 起可用。
CURLPROXY_SOCKS4A (int) 自 cURL 7.18.0 版本起可用。
CURLPROXY_SOCKS5 (int) 自 cURL 7.10 起可用。
CURLPROXY_SOCKS5_HOSTNAME (int) 自 cURL 7.18.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 (int) 自 PHP 8.2.0 和 cURL 7.73.0 版本起可用
CURLPX_IDENTD_DIFFER (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 版本起可用
CURLSSH_AUTH_AGENT (int) 自 PHP 7.0.7 和 cURL 7.28.0 版本起可用。
CURLSSH_AUTH_ANY (int)
CURLSSH_AUTH_DEFAULT (int)
CURLSSH_AUTH_GSSAPI (int) 自 PHP 7.3.0 和 cURL 7.58.0 版本起可用。
CURLSSH_AUTH_HOST (int)
CURLSSH_AUTH_KEYBOARD (int)
CURLSSH_AUTH_NONE (int)
CURLSSH_AUTH_PASSWORD (int)
CURLSSH_AUTH_PUBLICKEY (int)
CURLSSLOPT_ALLOW_BEAST (int) 自 cURL 7.25.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_NO_REVOKE (int) 自 PHP 7.0.7 和 cURL 7.44.0 版本起可用。
CURLSSLOPT_REVOKE_BEST_EFFORT (int) 自 PHP 8.2.0 和 cURL 7.70.0 版本起可用。
CURLUSESSL_ALL (int) 要求所有通信都使用 SSL,否则将返回 CURLE_USE_SSL_FAILED 错误。自 cURL 7.17.0 版本起可用。
CURLUSESSL_CONTROL (int) 要求控制连接使用 SSL,否则将返回 CURLE_USE_SSL_FAILED 错误。自 cURL 7.17.0 版本起可用。
CURLUSESSL_NONE (int) 不尝试使用 SSL。自 cURL 7.17.0 版本起可用。
CURLUSESSL_TRY (int) 尝试使用 SSL,否则正常进行。请注意,如果协商失败,服务器可能会关闭连接。自 cURL 7.17.0 版本起可用。
CURLVERSION_NOW (int)
CURLWS_RAW_MODE (int) 自 PHP 8.3.0 和 cURL 7.86.0 版本起可用。
CURL_FNMATCHFUNC_FAIL (int) 如果通配符匹配回调函数发生错误,则返回此值。自 cURL 7.21.0 版本起可用。
CURL_FNMATCHFUNC_MATCH (int) 如果模式与字符串匹配,则由通配符匹配回调函数返回此值。自 cURL 7.21.0 版本起可用。
CURL_FNMATCHFUNC_NOMATCH (int) 如果模式与字符串不匹配,则由通配符匹配回调函数返回此值。自 cURL 7.21.0 版本起可用。
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_2TLS (int) 自 PHP 7.0.7 和 cURL 7.47.0 版本起可用。
CURL_HTTP_VERSION_2_0 (int) 自 cURL 7.33.0 版本起可用。
CURL_HTTP_VERSION_2_PRIOR_KNOWLEDGE (int) 自 PHP 7.0.7 和 cURL 7.49.0 版本起可用。
CURL_HTTP_VERSION_3 (int) 自 PHP 8.4.0 和 cURL 7.66.0 起可用。
CURL_HTTP_VERSION_3ONLY (int) 自 PHP 8.4.0 和 cURL 7.88.0 起可用。
CURL_HTTP_VERSION_NONE (int)
CURL_IPRESOLVE_V4 (int) 仅在建立连接或从连接池中选择连接时使用 IPv4 地址。自 cURL 7.10.8 起可用。
CURL_IPRESOLVE_V6 (int) 仅在建立连接或从连接池中选择连接时使用 IPv6 地址。自 cURL 7.10.8 起可用。
CURL_IPRESOLVE_WHATEVER (int) 使用系统允许的所有 IP 版本的地址。自 cURL 7.10.8 起可用。
CURL_MAX_READ_SIZE (int) 自 PHP 7.3.0 和 cURL 7.53.0 起可用
CURL_NETRC_IGNORED (int)
CURL_NETRC_OPTIONAL (int)
CURL_NETRC_REQUIRED (int)
CURL_PUSH_DENY (int) 自 PHP 7.1.0 和 cURL 7.44.0 起可用
CURL_PUSH_OK (int) 自 PHP 7.1.0 和 cURL 7.44.0 起可用
CURL_READFUNC_PAUSE (int) 自 cURL 7.18.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_RTSPREQ_ANNOUNCE (int) 客户端发送此方法时,会更改会话的描述。ANNOUNCE 的作用类似于 HTTP PUT 或 POST,就像CURL_RTSPREQ_SET_PARAMETER 一样。自 cURL 7.20.0 起可用。
CURL_RTSPREQ_DESCRIBE (int) 用于获取流的底层描述。应用程序应注意其在Accept: 头中理解的格式。除非手动设置,否则 libcurl 会自动添加Accept: application/sdp。如果使用CURLOPT_TIMECONDITION 选项,则会将时间条件头添加到 DESCRIBE 请求中。自 cURL 7.20.0 起可用。
CURL_RTSPREQ_GET_PARAMETER (int) 从服务器检索参数。默认情况下,除非设置自定义头,否则 libcurl 会在所有非空请求上添加Content-Type: text/parameters 头。GET_PARAMETER 的作用类似于 HTTP PUT 或 POST。希望发送心跳消息的应用程序应使用空的GET_PARAMETER 请求。自 cURL 7.20.0 起可用。
CURL_RTSPREQ_OPTIONS (int) 用于检索服务器的可用方法。自 cURL 7.20.0 起可用。
CURL_RTSPREQ_PAUSE (int) 向服务器发送PAUSE 命令。使用具有单个值的CURLOPT_RANGE 选项来指示何时应停止流(例如 npt=25)。自 cURL 7.20.0 起可用。
CURL_RTSPREQ_PLAY (int) 向服务器发送PLAY 命令。使用CURLOPT_RANGE 选项修改播放时间(例如 npt=10-15)。自 cURL 7.20.0 起可用。
CURL_RTSPREQ_RECEIVE (int) 将 RTSP 请求类型设置为此值以接收交错的 RTP 数据。自 cURL 7.20.0 起可用。
CURL_RTSPREQ_RECORD (int) 用于告诉服务器录制会话。使用CURLOPT_RANGE 选项修改录制时间。自 cURL 7.20.0 起可用。
CURL_RTSPREQ_SETUP (int) 用于初始化会话的传输层。自 cURL 7.20.0 起可用。
CURL_RTSPREQ_SET_PARAMETER (int) 在服务器上设置参数。自 cURL 7.20.0 起可用。
CURL_RTSPREQ_TEARDOWN (int) 终止 RTSP 会话。仅仅关闭连接并不会终止 RTSP 会话,因为通过不同的连接控制 RTSP 会话是有效的。自 cURL 7.20.0 起可用。
CURL_SSLVERSION_DEFAULT (int)
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_SSLVERSION_SSLv2 (int)
CURL_SSLVERSION_SSLv3 (int)
CURL_SSLVERSION_TLSv1 (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 起可用
CURL_TIMECOND_IFMODSINCE (int)
CURL_TIMECOND_IFUNMODSINCE (int)
CURL_TIMECOND_LASTMOD (int)
CURL_TIMECOND_NONE (int)
CURL_TLSAUTH_SRP (int) 自 cURL 7.21.4 起可用。
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 起可用(自 cURL 7.38.0 起已弃用)
CURL_VERSION_HSTS (int) 自 PHP 8.2.0 和 cURL 7.74.0 起可用
CURL_VERSION_HTTP2 (int) 内置 HTTP2 支持。自 cURL 7.33.0 起可用
CURL_VERSION_HTTP3 (int) 自 PHP 8.2.0 和 cURL 7.66.0 起可用
CURL_VERSION_HTTPS_PROXY (int) 自 PHP 7.3.0 和 cURL 7.52.0 起可用
CURL_VERSION_IDN (int) 支持国际化域名。自 PHP 7.3.0 和 cURL 7.12.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_LARGEFILE (int) 支持大于 2GB 的文件。自 cURL 7.33.0 起可用。
CURL_VERSION_LIBZ (int) libz 功能可用。
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_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_SSL (int) 提供 SSL 选项。
CURL_VERSION_SSPI (int) 基于 Windows SSPI 构建。自 PHP 7.3.0 和 cURL 7.13.2 起可用。
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_WRITEFUNC_PAUSE (int) 自 cURL 7.18.0 版本起可用。
CURL_PREREQFUNC_OK (int) 自 PHP 8.4.0 和 cURL 7.80.0 起可用。
CURL_PREREQFUNC_ABORT (int) 自 PHP 8.4.0 和 cURL 7.80.0 起可用。
curl_setopt()
常量 描述
CURLOPT_ABSTRACT_UNIX_SOCKET (int)

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

CURLOPT_ACCEPT_ENCODING (string)

设置一个 string,其中包含在 HTTP 请求中发送的 Accept-Encoding: 标头的内容。设置为 null 可禁用发送 Accept-Encoding: 标头。默认为 null。自 cURL 7.21.6 起可用。

CURLOPT_ACCEPTTIMEOUT_MS (int)

使用活动 FTP 连接时,等待服务器连接回 cURL 的最大毫秒数。此选项接受任何可以转换为有效 int 的值。默认为 60000 毫秒。自 cURL 7.24.0 起可用。

CURLOPT_ADDRESS_SCOPE (int)

连接到 IPv6 地址时要使用的作用域 ID 值。此选项接受任何可以转换为有效 int 的值。默认为 0。自 cURL 7.19.0 起可用。

CURLOPT_ALTSVC (string)

传递一个 string,其中包含 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_* 常量。默认为禁用 Alt-Svc 处理。自 PHP 8.2.0 和 cURL 7.64.1 起可用。

CURLOPT_APPEND (int)

将此选项设置为 1 将导致 FTP 上传附加到远程文件,而不是覆盖它。默认为 0。自 cURL 7.17.0 起可用。

CURLOPT_AUTOREFERER (int)

true 自动在请求中设置 Referer: 字段,其中该字段遵循 Location: 重定向。默认为 0。自 cURL 7.1.0 起可用。

CURLOPT_AWS_SIGV4 (string)

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

CURLOPT_BINARYTRANSFER (int)

自 PHP 5.5.0 起不再使用此常量。自 PHP 8.4.0 起已弃用。

CURLOPT_BUFFERSIZE (int)

用于每次读取的缓冲区大小。但是,不能保证此请求会被满足。此选项接受任何可以转换为有效 int 的值。默认为 CURL_MAX_WRITE_SIZE(目前为 16kB)。自 cURL 7.10 起可用。

CURLOPT_CAINFO (string)

一个 string,其中包含保存一个或多个证书的文件名,用于验证对等方。仅当与 CURLOPT_SSL_VERIFYPEER 结合使用时才有意义。可能需要绝对路径。自 cURL 7.4.2 起可用。

CURLOPT_CAINFO_BLOB (string)

一个 string,其中包含保存一个或多个证书的 PEM 文件名,用于验证对等方。此选项将覆盖 CURLOPT_CAINFO。自 PHP 8.2.0 和 cURL 7.77.0 起可用。

CURLOPT_CAPATH (string)

一个 string,其中包含保存多个 CA 证书的目录。将此选项与 CURLOPT_SSL_VERIFYPEER 一起使用。自 cURL 7.9.8 起可用。

CURLOPT_CA_CACHE_TIMEOUT (int)

设置内存中缓存的 CA 证书存储区可以保留和重复用于新连接的最大秒数。此选项接受任何可以转换为有效 int 的值。默认为 86400(24 小时)。自 PHP 8.3.0 和 cURL 7.87.0 起可用

CURLOPT_CERTINFO (int)

true 将 SSL 证书信息输出到安全传输的 STDERR。需要 CURLOPT_VERBOSE 为开启状态才能生效。默认为 false。自 cURL 7.19.1 起可用。

CURLOPT_CONNECTTIMEOUT (int)

尝试连接时等待的秒数。使用 0 表示无限期等待。此选项接受任何可以转换为有效 int 的值。默认为 300。从 cURL 7.7.0 开始可用。

CURLOPT_CONNECTTIMEOUT_MS (int)

尝试连接时等待的毫秒数。使用 0 表示无限期等待。如果 cURL 构建为使用标准系统名称解析器,则连接的该部分仍然会使用全秒分辨率进行超时,允许的最小超时为一秒。此选项接受任何可以转换为有效 int 的值。默认为 300000。从 cURL 7.16.2 开始可用。

CURLOPT_CONNECT_ONLY (int)

true 指示库执行所有必需的代理身份验证和连接设置,但不进行数据传输。此选项适用于 HTTP、SMTP 和 POP3。默认为 false。从 cURL 7.15.2 开始可用。

CURLOPT_CONNECT_TO (int)

连接到特定的主机和端口,而不是 URL 的主机和端口。接受一个格式为 HOST:PORT:CONNECT-TO-HOST:CONNECT-TO-PORTarray,其元素为 string。从 PHP 7.0.7 和 cURL 7.49.0 开始可用。

包含要在 HTTP 请求中使用的 Cookie: 头内容的 string。请注意,多个 Cookie 使用分号和空格分隔(例如,fruit=apple; colour=red)。从 cURL 7.1.0 开始可用。

CURLOPT_COOKIEFILE (int)

包含 Cookie 数据的文件名 string。Cookie 文件可以是 Netscape 格式,也可以只是普通的 HTTP 样式头转储到文件。如果名称为空 string,则不加载任何 Cookie,但仍然启用 Cookie 处理。从 cURL 7.1.0 开始可用。

CURLOPT_COOKIEJAR (int)

保存所有内部 Cookie 的文件名 string,在句柄的析构函数被调用时使用。从 cURL 7.9.0 开始可用。

警告

从 PHP 8.0.0 开始,curl_close() 是一个空操作,并且*不会*销毁句柄。如果需要在句柄自动销毁之前写入 Cookie,请对句柄调用 unset()

CURLOPT_COOKIELIST (int)

Cookie string(即 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 “会话”。它将强制 cURL 忽略它即将加载的所有来自先前会话的“会话 Cookie”。默认情况下,cURL 始终存储和加载所有 Cookie,而不管它们是会话 Cookie 还是非会话 Cookie。会话 Cookie 是没有过期日期的 Cookie,它们只在本“会话”期间有效。从 cURL 7.9.7 开始可用。

CURLOPT_CRLF (int)

设置为 true 可在传输时将 Unix 换行符转换为 CRLF 换行符。从 cURL 7.1.0 开始可用。

CURLOPT_CRLFILE (string)

传递一个 string,其中包含 CRL(证书吊销列表)(PEM 格式)的串联,用于在 SSL 交换期间发生的证书验证中。当 cURL 构建为使用 GnuTLS 时,无法影响传递的 CRL 的使用方式来帮助验证过程。当 cURL 使用 OpenSSL 支持构建时,X509_V_FLAG_CRL_CHECKX509_V_FLAG_CRL_CHECK_ALL 都已设置,如果传递了 CRL 文件,则需要针对证书链的所有元素进行 CRL 检查。另请注意,由于 OpenSSL 错误,从 cURL 7.71.0 开始,CURLOPT_CRLFILE 意味着 CURLSSLOPT_NO_PARTIALCHAIN。从 cURL 7.19.0 开始可用。

CURLOPT_CUSTOMREQUEST (int)

在执行 HTTP 请求时,要使用的自定义请求方法,而不是 GETHEAD。这对于执行 DELETE 或其他更模糊的 HTTP 请求很有用。有效值为 GETPOSTCONNECT 等;即不要在此处输入完整的 HTTP 请求行。例如,输入 GET /index.html HTTP/1.0\r\n\r\n 是不正确的。此选项接受 stringnull。从 cURL 7.1.0 开始可用。

注意:

在确保服务器首先支持自定义请求方法之前,请勿执行此操作。

CURLOPT_DEFAULT_PROTOCOL (int)

如果 URL 缺少方案名称,则要使用的默认协议 string。从 PHP 7.0.7 和 cURL 7.45.0 开始可用。

CURLOPT_DIRLISTONLY (int)

将此选项设置为 1 将根据其使用的协议产生不同的效果。基于 FTP 和 SFTP 的 URL 只列出目录中文件的名称。POP3 将列出 POP3 服务器上的电子邮件消息。对于 FILE,此选项无效,因为目录始终以这种模式列出。将此选项与 CURLOPT_WILDCARDMATCH 一起使用将阻止后者产生任何影响。默认为 0。从 cURL 7.17.0 开始可用。

CURLOPT_DISALLOW_USERNAME_IN_URL (int)

设置为 true 以不允许包含用户名 的 URL。默认情况下允许用户名。从 PHP 7.3.0 和 cURL 7.61.0 开始可用。

CURLOPT_DNS_CACHE_TIMEOUT (int)

在内存中保留 DNS 条目的秒数。此选项默认为 120(2 分钟)。此选项接受任何可以转换为有效 int 的值。从 cURL 7.9.3 开始可用。

CURLOPT_DNS_INTERFACE (int)

设置 DNS 解析器应绑定到的网络接口的名称。这必须是接口名称(而不是地址)。此选项接受 stringnull。从 PHP 7.0.7 和 cURL 7.33.0 开始可用。

CURLOPT_DNS_LOCAL_IP4 (int)

设置解析器应绑定到的本地 IPv4 地址。参数应包含单个数字 IPv4 地址。此选项接受 stringnull。从 PHP 7.0.7 和 cURL 7.33.0 开始可用。

CURLOPT_DNS_LOCAL_IP6 (int)

设置解析器应绑定到的本地 IPv6 地址。参数应包含单个数字 IPv6 地址。此选项接受 stringnull。从 PHP 7.0.7 和 cURL 7.33.0 开始可用。

CURLOPT_DNS_SERVERS (int)

传递一个 string,其中包含要使用的 DNS 服务器的逗号分隔列表,以代替系统默认值(例如:192.168.1.100,192.168.1.101:8080)。从 cURL 7.24.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等),则默认情况下会条件启用它。cURL 7.9.3 版本起可用,cURL 7.11.1 版本起已弃用。从PHP 8.4开始,此选项不再有任何作用。

CURLOPT_DOH_SSL_VERIFYHOST (int)

设置为2 可将DNS-over-HTTPS服务器的SSL证书名称字段与主机名进行验证。PHP 8.2.0 和 cURL 7.76.0 版本起可用。

CURLOPT_DOH_SSL_VERIFYPEER (int)

设置为1 可启用,设置为0 可禁用对DNS-over-HTTPS服务器SSL证书真实性的验证。PHP 8.2.0 和 cURL 7.76.0 版本起可用。

CURLOPT_DOH_SSL_VERIFYSTATUS (int)

设置为1 可启用,设置为0 可禁用使用“证书状态请求”TLS扩展(OCSP stapling)验证DNS-over-HTTPS服务器证书的状态。PHP 8.2.0 和 cURL 7.76.0 版本起可用。

CURLOPT_DOH_URL (int)

提供DNS-over-HTTPS URL。此选项接受stringnull。PHP 8.1.0 和 cURL 7.62.0 版本起可用。

CURLOPT_EGDSOCKET (int)

类似于CURLOPT_RANDOM_FILE,但它是一个指向熵收集守护进程套接字的文件名。cURL 7.7.0 版本起可用,cURL 7.84.0 版本起已弃用。

CURLOPT_ENCODING (int)

作为stringAccept-Encoding: 头部的内容。这将启用对响应的解码。支持的编码包括:identitydeflategzip。如果设置为空string,则会发送包含所有支持编码类型的标头。cURL 7.10 版本起可用,cURL 7.21.6 版本起已弃用。

CURLOPT_EXPECT_100_TIMEOUT_MS (int)

以毫秒为单位的Expect: 100-continue 响应的超时时间。默认为1000 毫秒。此选项接受任何可以转换为有效int 的值。PHP 7.0.7 和 cURL 7.36.0 版本起可用。

CURLOPT_FAILONERROR (int)

设置为true,如果返回的HTTP代码大于或等于400,则会详细地失败。默认行为是正常返回页面,忽略代码。cURL 7.1.0 版本起可用。

CURLOPT_FILE (resource)

接受指向应将传输写入的文件的文件句柄resource。默认值为STDOUT(浏览器窗口)。cURL 7.1.0 版本起可用,cURL 7.9.7 版本起已弃用。

CURLOPT_FILETIME (int)

设置为true 可尝试检索远程文档的修改日期。可以使用CURLINFO_FILETIME 选项和curl_getinfo() 函数检索此值。cURL 7.5.0 版本起可用。

CURLOPT_FNMATCH_FUNCTION (int)

传递一个将用于通配符匹配的callable。回调的签名应为

callback(resource $curlHandle, string $pattern, string $string): int
curlHandle
cURL句柄。
pattern
通配符模式。
string
要对其运行通配符模式匹配的string
如果模式与string 匹配,则回调应返回CURL_FNMATCHFUNC_MATCH;如果不匹配,则返回CURL_FNMATCHFUNC_NOMATCH;如果发生错误,则返回CURL_FNMATCHFUNC_FAIL。cURL 7.21.0 版本起可用。

CURLOPT_FOLLOWLOCATION (int)

设置为true 可跟踪服务器作为HTTP标头一部分发送的任何Location: 标头。另请参见CURLOPT_MAXREDIRS。启用open_basedir 时,此常量不可用。cURL 7.1.0 版本起可用。

CURLOPT_FORBID_REUSE (int)

设置为true 可强制连接在完成处理后显式关闭,而不是将其放入池中以供重用。cURL 7.7.0 版本起可用。

CURLOPT_FRESH_CONNECT (int)

设置为true 可强制使用新连接而不是缓存的连接。cURL 7.7.0 版本起可用。

CURLOPT_FTPAPPEND (int)

设置为true 可将内容追加到远程文件,而不是覆盖它。cURL 7.1.0 版本起可用,cURL 7.16.4 版本起已弃用。

CURLOPT_FTPASCII (int)

CURLOPT_TRANSFERTEXT 的别名。请改用它。cURL 7.1 版本起可用,cURL 7.11.1 版本起已弃用,cURL 7.15.5 版本中最后可用。PHP 7.3.0 版本起已移除。

CURLOPT_FTPLISTONLY (int)

设置为true 只列出FTP目录的名称。cURL 7.1.0 版本起可用,cURL 7.16.4 版本起已弃用。

CURLOPT_FTPPORT (int)

一个string,它将用于获取用于FTP PORT 指令的IP地址。PORT 指令告诉远程服务器连接到我们指定的IP地址。string 可以是普通的IP地址、主机名、网络接口名称(在Unix下)或只是一个普通的-(使用系统的默认IP地址)。此选项接受stringnull。cURL 7.1.0 版本起可用。

CURLOPT_FTPSSLAUTH (int)

将FTP over SSL身份验证方法(如果已激活)设置为任何CURLFTPAUTH_* 常量。默认为CURLFTPAUTH_DEFAULT。cURL 7.12.2 版本起可用。

CURLOPT_FTP_ACCOUNT (int)

传递一个string,它将作为帐户信息通过FTP(使用ACCT 命令)发送,在向服务器提供用户名和密码之后。设置为null 可禁用发送帐户信息。默认为null。cURL 7.13.0 版本起可用。

CURLOPT_FTP_ALTERNATIVE_TO_USER (int)

如果`USER/PASS` 协商失败,则传递一个 string 用于尝试进行 FTP 身份验证。从 cURL 7.15.5 开始可用。

CURLOPT_FTP_CREATE_MISSING_DIRS (int)

设置为 true 以在 FTP 操作遇到当前不存在的路径时创建缺失的目录。从 cURL 7.10.7 开始可用。

CURLOPT_FTP_FILEMETHOD (int)

告诉 cURL 使用哪种方法访问 FTP(S) 服务器上的文件。可能的值是任何 CURLFTPMETHOD_* 常量。默认为 CURLFTPMETHOD_MULTICWD。从 cURL 7.15.1 开始可用。

CURLOPT_FTP_RESPONSE_TIMEOUT (int)

cURL 等待 FTP 服务器响应的超时时间(以秒为单位)。此选项会覆盖 CURLOPT_TIMEOUT。此选项接受任何可以转换为有效 int 的值。此选项名称已替换为 CURLOPT_SERVER_RESPONSE_TIMEOUT,从 PHP 8.4.0 开始可用。从 cURL 7.10.8 开始可用,从 cURL 7.85.0 开始弃用。

CURLOPT_FTP_SKIP_PASV_IP (int)

如果此选项设置为 1,cURL 将不会使用服务器在其 227 响应中建议的 IP 地址(对 cURL 的 PASV 命令的响应),而是使用它用于连接的 IP 地址。cURL 不会忽略从 227 响应接收到的端口号。从 cURL 7.74.0 开始默认为 1,在此之前默认为 0。从 cURL 7.15.0 开始可用。

CURLOPT_FTP_SSL (int)

从 cURL 7.11.0 开始可用,从 cURL 7.16.4 开始弃用。

CURLOPT_FTP_SSL_CCC (int)

此选项使 cURL 使用 CCC(Clear Command Channel),它会在身份验证后关闭 SSL/TLS 层,使控制通道的其余通信不加密。使用 CURLFTPSSL_CCC_* 常量之一。默认为 CURLFTPSSL_CCC_NONE。从 cURL 7.16.1 开始可用。

CURLOPT_FTP_USE_EPRT (int)

设置为 true 以在进行主动 FTP 下载时使用 EPRT(和 LPRT)。设置为 false 以禁用 EPRTLPRT,仅使用 PORT。从 cURL 7.10.5 开始可用。

CURLOPT_FTP_USE_EPSV (int)

设置为 true 以在回退到 PASV 之前首先尝试 EPSV 命令进行 FTP 传输。设置为 false 以禁用 EPSV。从 cURL 7.9.2 开始可用。

CURLOPT_FTP_USE_PRET (int)

设置为 1 以在 PASV(和 EPSV)之前发送 PRET 命令。使用主动 FTP 传输模式时无效。默认为 0。从 cURL 7.20.0 开始可用。

CURLOPT_GSSAPI_DELEGATION (int)

设置为 CURLGSSAPI_DELEGATION_FLAG 以允许无条件的 GSSAPI 凭据委托。设置为 CURLGSSAPI_DELEGATION_POLICY_FLAG 仅在服务票证中设置了 OK-AS-DELEGATE 标志时才进行委托。默认为 CURLGSSAPI_DELEGATION_NONE。从 cURL 7.22.0 开始可用。

CURLOPT_HAPPY_EYEBALLS_TIMEOUT_MS (int)

happy eyeballs 算法中 IPv6 的提前启动时间。happy eyeballs 尝试连接到双栈主机的 IPv4 和 IPv6 地址,优先使用 IPv6,超时时间以毫秒为单位。默认为 CURL_HET_DEFAULT,目前为 200 毫秒。此选项接受任何可以转换为有效 int 的值。从 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_WRITEFUNCTION 定义的回调中的输出中。从 cURL 7.1.0 开始可用。

CURLOPT_HEADERFUNCTION (int)

具有以下签名的 callable

callback(resource $curlHandle, string $headerData): int
curlHandle
cURL句柄。
headerData
必须由回调写入的标头数据。
回调应返回写入的字节数。从 cURL 7.7.2 开始可用。

CURLOPT_HEADEROPT (int)

将 HTTP 标头发送到代理和主机,或分别发送。可能的值是任何 CURLHEADER_* 常量。从 cURL 7.42.1 开始默认为 CURLHEADER_SEPARATE,在此之前默认为 CURLHEADER_UNIFIED。从 PHP 7.0.7 和 cURL 7.37.0 开始可用。

CURLOPT_HSTS (string)

包含 HSTS (HTTP Strict Transport Security) 缓存文件名的 string,或 null 以允许 HSTS 而不读取或写入任何文件并清除读取 HSTS 数据的文件列表。从 PHP 8.2.0 和 cURL 7.74.0 开始可用。

CURLOPT_HSTS_CTRL (int)

接受由 CURLHSTS_* 常量定义的 HSTS (HTTP Strict Transport Security) 功能的位掩码。从 PHP 8.2.0 和 cURL 7.74.0 开始可用。

CURLOPT_HTTP09_ALLOWED (int)

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

CURLOPT_HTTP200ALIASES (int)

将被视为有效响应而不是错误的 HTTP 200 响应的 array。从 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 将自动选择它认为最安全的一种。从 cURL 7.10.6 开始可用。

CURLOPT_HTTPGET (int)

设置为 **true** 以将 HTTP 请求方法重置为 GET。由于 GET 是默认值,因此只有在请求方法已更改时才需要此设置。从 cURL 7.8.1 版本开始可用。

CURLOPT_HTTPHEADER (int)

要设置的 HTTP 头字段的 数组,格式为 array('Content-type: text/plain', 'Content-length: 100') 从 cURL 7.1.0 版本开始可用。

CURLOPT_HTTPPROXYTUNNEL (int)

设置为 **true** 以通过指定的 HTTP 代理进行隧道连接。从 cURL 7.3.0 版本开始可用。

CURLOPT_HTTP_CONTENT_DECODING (int)

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

CURLOPT_HTTP_TRANSFER_DECODING (int)

如果设置为 0,则禁用传输解码。如果设置为 1,则启用传输解码。除非此选项设置为 0,否则 cURL 默认执行分块传输解码。默认为 1。从 cURL 7.16.2 版本开始可用。

CURLOPT_HTTP_VERSION (int)

设置为其中一个 **CURL_HTTP_VERSION_*** 常量,以便 cURL 使用指定的 HTTP 版本。从 cURL 7.9.1 版本开始可用。

CURLOPT_IGNORE_CONTENT_LENGTH (int)

如果设置为 1,则忽略 HTTP 响应中的 Content-Length 头,并且忽略请求或依赖于 FTP 传输的该头。默认为 0。从 cURL 7.14.1 版本开始可用。

CURLOPT_INFILE (int)

接受指向文件的 资源 文件句柄,上传时应从此文件中读取传输数据。从 cURL 7.1.0 版本开始可用,从 cURL 7.9.7 版本开始弃用。请改用 **CURLOPT_READDATA**。

CURLOPT_INFILESIZE (int)

将文件上传到远程站点时,文件的预期大小(以字节为单位)。请注意,使用此选项不会阻止 cURL 发送更多数据,因为发送的确切内容取决于 **CURLOPT_READFUNCTION**。此选项接受任何可以转换为有效 int 的值。从 cURL 7.1.0 版本开始可用。

CURLOPT_INTERFACE (int)

设置为一个包含要使用的出站网络接口名称的 字符串。这可以是接口名称、IP 地址或主机名。从 cURL 7.1.0 版本开始可用。

CURLOPT_IPRESOLVE (int)

允许应用程序选择在解析主机名时要使用的 IP 地址类型。这仅在使用使用多个版本的 IP 解析地址的主机名时才比较重要。设置为其中一个 **CURL_IPRESOLVE_*** 常量。默认为 **CURL_IPRESOLVE_WHATEVER**。从 cURL 7.10.8 版本开始可用。

CURLOPT_ISSUERCERT (int)

如果设置为一个命名包含 PEM 格式的 CA 证书的文件的 字符串,则会执行针对对等证书的附加检查,以验证颁发者确实是与选项提供的证书关联的颁发者。为了将检查的结果视为失败,此选项应与 **CURLOPT_SSL_VERIFYPEER** 选项一起使用。从 cURL 7.19.0 版本开始可用。

CURLOPT_ISSUERCERT_BLOB (int)

传递一个包含 PEM 格式的 CA 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_SSLKEY** 或 **CURLOPT_SSH_PRIVATE_KEYFILE** 私钥所需的密码的 字符串。将此选项设置为 **null** 将禁用为这些选项使用密码。从 cURL 7.17.0 版本开始可用。

CURLOPT_KRB4LEVEL (int)

KRB4(Kerberos 4)安全级别。以下任何 字符串 值(按从最弱到最强的顺序排列)都是有效的:clearsafeconfidentialprivate。如果 字符串 与这些值都不匹配,则使用 private。将此选项设置为 **null** 将禁用 KRB4 安全性。当前,KRB4 安全性仅适用于 FTP 事务。从 cURL 7.3.0 版本开始可用,从 cURL 7.17.0 版本开始弃用。

CURLOPT_KRBLEVEL (int)

设置 FTP 的 Kerberos 安全级别,并启用 Kerberos 感知。这应设置为以下 字符串 之一:clearsafeconfidentialprivate。如果 字符串 已设置但与这些值都不匹配,则使用 private。将此选项设置为 **null** 将禁用 FTP 的 Kerberos 支持。默认为 **null**。从 cURL 7.16.4 版本开始可用。

CURLOPT_LOCALPORT (int)

设置用于连接的套接字的本地端口号。此选项接受任何可以转换为有效 int 的值。默认为 0。从 cURL 7.15.2 版本开始可用。

CURLOPT_LOCALPORTRANGE (int)

cURL 尝试查找工作本地端口号的次数,从使用 **CURLOPT_LOCALPORT** 设置的端口号开始。此选项接受任何可以转换为有效 int 的值。默认为 1。从 cURL 7.15.2 版本开始可用。

CURLOPT_LOGIN_OPTIONS (int)

可用于设置协议特定的登录选项,例如通过 AUTH=NTLMAUTH=* 设置首选身份验证机制,并且应与 **CURLOPT_USERNAME** 选项一起使用。从 PHP 7.0.7 和 cURL 7.34.0 版本开始可用。

CURLOPT_LOW_SPEED_LIMIT (int)

传输速度(以每秒字节为单位),在 **CURLOPT_LOW_SPEED_TIME** 秒的计数期间,传输速度应低于此速度,然后 PHP 才认为传输速度过慢并中止。此选项接受任何可以转换为有效 int 的值。从 cURL 7.1.0 版本开始可用。

CURLOPT_LOW_SPEED_TIME (int)

传输速度应低于 **CURLOPT_LOW_SPEED_LIMIT** 的秒数,然后 PHP 才认为传输速度过慢并中止。此选项接受任何可以转换为有效 int 的值。从 cURL 7.1.0 版本开始可用。

CURLOPT_MAIL_AUTH (int)

设置为一个包含已提交消息的身份验证地址(标识)的 字符串,该消息正在转发到另一个服务器。地址不应在尖括号 (><) 内指定。如果使用空 字符串,则 cURL 会根据 RFC 2554 的要求发送一对括号。从 cURL 7.25.0 版本开始可用。

CURLOPT_MAIL_FROM (int)

发送 SMTP 邮件时,设置为一个包含发件人电子邮件地址的 字符串。电子邮件地址应在尖括号 (><) 内指定,如果没有指定,则会自动添加。如果未指定此参数,则会向 SMTP 服务器发送空地址,这可能会导致电子邮件被拒绝。从 cURL 7.20.0 版本开始可用。

CURLOPT_MAIL_RCPT (int)

设置为一个包含要传递到 SMTP 邮件请求中服务器的收件人的 字符串数组。每个收件人都应在尖括号 (><) 内指定。如果尖括号不是第一个字符,则 cURL 假设已提供单个电子邮件地址,并将其用括号括起来。从 cURL 7.20.0 版本开始可用。

CURLOPT_MAIL_RCPT_ALLLOWFAILS (int)

设置为 1 以允许 RCPT TO 命令对某些收件人失败,这使得 cURL 忽略单个收件人的错误并继续处理其余已接受的收件人。如果所有收件人都触发失败并且指定了此标志,则 cURL 将中止 SMTP 会话并返回从最后一个 RCPT TO 命令接收到的错误。从 cURL 8.2.0 开始,已由 CURLOPT_MAIL_RCPT_ALLOWFAILS 替换。从 PHP 8.2.0 和 cURL 7.69.0 开始可用。从 cURL 8.2.0 开始已弃用。

CURLOPT_MAXAGE_CONN (int)

允许将现有连接空闲的最大时间视为可重用。默认最大年龄设置为 118 秒。此选项接受任何可以转换为有效 int 的值。从 PHP 8.2.0 和 cURL 7.65.0 开始可用。

CURLOPT_MAXCONNECTS (int)

允许的持久连接的最大数量。达到限制时,缓存中最早的一个连接将被关闭,以防止打开的连接数量增加。此选项接受任何可以转换为有效 int 的值。从 cURL 7.7.0 开始可用。

CURLOPT_MAXFILESIZE (int)

设置要下载的文件的最大可接受大小(以字节为单位)。如果请求的文件大小大于此值,则传输将中止并返回 CURLE_FILESIZE_EXCEEDED。传递 0 将禁用此选项,传递负大小将返回 CURLE_BAD_FUNCTION_ARGUMENT。如果在下载开始之前不知道文件大小,则此选项无效。要设置大于 2GB 的大小限制,应使用 CURLOPT_MAXFILESIZE_LARGE。从 cURL 8.4.0 开始,如果正在进行的传输达到此阈值,此选项也会停止传输。此选项接受任何可以转换为有效 int 的值。默认为 0。从 cURL 7.10.8 开始可用。

CURLOPT_MAXFILESIZE_LARGE (int)

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

CURLOPT_MAXLIFETIME_CONN (int)

自连接创建以来,允许现有连接具有可重用时间的最大秒数。如果在缓存中找到比此值旧的连接,则在任何正在进行的传输完成后,它将被关闭。默认值为 0 秒,这意味着选项被禁用,所有连接都符合重用条件。此选项接受任何可以转换为有效 int 的值。从 PHP 8.2.0 和 cURL 7.80.0 开始可用。

CURLOPT_MAXREDIRS (int)

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

CURLOPT_MAX_RECV_SPEED_LARGE (int)

如果下载在传输过程中累积平均速度超过此速度(以每秒字节数计算),则传输将暂停以保持平均速率小于或等于参数值。默认为无限速度。此选项接受任何可以转换为有效 int 的值。从 cURL 7.15.5 开始可用。

CURLOPT_MAX_SEND_SPEED_LARGE (int)

如果上传在传输过程中累积平均速度超过此速度(以每秒字节数计算),则传输将暂停以保持平均速率小于或等于参数值。默认为无限速度。此选项接受任何可以转换为有效 int 的值。从 cURL 7.15.5 开始可用。

CURLOPT_MIME_OPTIONS (int)

设置为 CURLMIMEOPT_* 常量的位掩码。目前只有一个可用选项:CURLMIMEOPT_FORMESCAPE。从 PHP 8.3.0 和 cURL 7.81.0 开始可用。

CURLOPT_MUTE (int)

设置为 true 以完全静默 cURL 函数。请改用 CURLOPT_RETURNTRANSFER。从 cURL 7.1.0 开始可用,从 cURL 7.8.0 开始弃用,并在 cURL 7.15.5 中最后可用。从 PHP 7.3.0 开始移除。

CURLOPT_NETRC (int)

设置为 true 以扫描 ~/.netrc 文件以查找正在建立连接的远程站点的用户名和密码。从 cURL 7.1.0 开始可用。

CURLOPT_NETRC_FILE (string)

设置一个包含 .netrc 文件完整路径名的 string。如果省略此选项并且设置了 CURLOPT_NETRC,则 cURL 会检查当前用户主目录中的 .netrc 文件。从 cURL 7.11.0 开始可用。

CURLOPT_NEW_DIRECTORY_PERMS (int)

设置在远程服务器上新创建的目录上设置的权限值(int)。默认值为 0755。唯一可以使用此功能的协议是 sftp://scp://file://。从 cURL 7.16.4 开始可用。

CURLOPT_NEW_FILE_PERMS (int)

设置在远程服务器上新创建的文件上设置的权限值(作为 int)。默认值为 0644。唯一可以使用此功能的协议是 sftp://scp://file://。从 cURL 7.16.4 开始可用。

CURLOPT_NOBODY (int)

设置为 true 以从输出中排除正文。对于 HTTP(S),cURL 会发出 HEAD 请求。对于大多数其他协议,cURL 根本不会请求正文数据。将其更改为 false 将导致正文数据包含在输出中。从 cURL 7.1.0 开始可用。

CURLOPT_NOPROGRESS (int)

设置为 true 以禁用 cURL 传输的进度指示器。

注意:

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

从 cURL 7.1.0 开始可用。

CURLOPT_NOPROXY (string)

设置一个由逗号分隔的主机名列表组成的 string,这些主机名不需要代理即可访问。此列表中的每个名称都匹配为包含主机名的域或主机名本身。此 string 中唯一可用的通配符是单个 * 字符,它匹配所有主机,有效地禁用了代理。将此选项设置为空 string 将为所有主机名启用代理。从 cURL 7.86.0 开始,使用此选项设置的 IP 地址可以使用 CIDR 表示法提供。从 cURL 7.19.4 开始可用。

CURLOPT_NOSIGNAL (int)

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

CURLOPT_PASSWDFUNCTION (int)

具有以下签名的 callable

callback(resource $curlHandle, string $passwordPrompt, int $maximumPasswordLength): string
curlHandle
cURL句柄。
passwordPrompt
密码提示。
maximumPasswordLength
密码的最大长度。
回调应该返回一个包含密码的 string。从 cURL 7.4.2 开始可用,从 cURL 7.11.1 开始弃用,并在 cURL 7.15.5 中最后可用。从 PHP 7.3.0 开始移除。

CURLOPT_PASSWORD (int)

设置为一个包含要用于身份验证的密码的 string。从 cURL 7.19.1 开始可用。

CURLOPT_PATH_AS_IS (int)

设置为 true 以使 cURL 在将 URL 路径传递给服务器之前不更改它们。默认为 false,它会压缩 URL 路径部分中可能存在的 /..//./ 序列,这些序列应该根据 RFC 3986 第 5.2.4 节移除。从 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 (整数)

设置为true以等待现有连接确认其是否可以进行多路复用,如果可以则使用它,然后再创建和使用新连接。 从PHP 7.0.7和cURL 7.43.0版本开始可用。

CURLOPT_PORT (整数)

一个整数,表示要连接到的备用端口号,而不是URL中指定的端口号或所用协议的默认端口号。 从cURL 7.1.0版本开始可用。

CURLOPT_POST (整数)

设置为true以执行HTTP POST请求。此请求使用application/x-www-form-urlencoded标头。默认为false。 从cURL 7.1.0版本开始可用。

CURLOPT_POSTFIELDS (整数)

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

CURLOPT_POSTQUOTE (整数)

一个包含FTP命令字符串数组,用于在执行FTP请求后在服务器上执行。 从cURL 7.1.0版本开始可用。

CURLOPT_POSTREDIR (整数)

如果在设置CURLOPT_FOLLOWLOCATION并发生特定类型的重定向时应保持HTTP POST方法,则将其设置为CURL_REDIR_POST_301CURL_REDIR_POST_302CURL_REDIR_POST_303的位掩码。 从cURL 7.19.1版本开始可用。

CURLOPT_PRE_PROXY (整数)

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

CURLOPT_PREQUOTE (整数)

设置一个包含FTP命令字符串数组,用于在设置传输类型后传递给服务器。在执行目录列表时不会执行这些命令,仅对文件传输执行。 从cURL 7.9.5版本开始可用。

CURLOPT_PRIVATE (整数)

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

CURLOPT_PROGRESSFUNCTION (整数)

具有以下签名的 callable

回调函数(
    资源 $curlHandle,
    整数 $bytesToDownload,
    整数 $bytesDownloaded,
    整数 $bytesToUpload,
    整数 $bytesUploaded
): 整数
curlHandle
cURL句柄。
bytesToDownload
此传输中预期下载的总字节数。
bytesDownloaded
到目前为止已下载的字节数。
bytesToUpload
此传输中预期上传的总字节数。
bytesUploaded
到目前为止已上传的字节数。
回调函数应返回一个整数,其值为非零值,以中止传输并设置CURLE_ABORTED_BY_CALLBACK错误。

注意:

仅当CURLOPT_NOPROGRESS选项设置为false时,才会调用回调函数。

从cURL 7.1.0版本开始可用,从cURL 7.32.0版本开始弃用。请改用CURLOPT_XFERINFOFUNCTION

CURLOPT_PROTOCOLS (整数)

CURLPROTO_*值的位掩码。如果使用,此位掩码将限制cURL在传输中可能使用的协议。默认为CURLPROTO_ALL,即cURL将接受其支持的所有协议。另请参见CURLOPT_REDIR_PROTOCOLS。 从cURL 7.19.4版本开始可用,从cURL 7.85.0版本开始弃用。

CURLOPT_PROTOCOLS_STR (整数)

设置为一个字符串,其中包含允许在传输中使用的协议名称(URL方案)的不区分大小写的逗号分隔列表。设置为ALL以启用所有协议。默认情况下,cURL接受其构建时支持的所有协议。可用的协议包括:DICTFILEFTPFTPSGOPHERGOPHERSHTTPHTTPSIMAPIMAPSLDAPLDAPSMQTTPOP3POP3SRTMPRTMPERTMPSRTMPTRTMPTERTMPTSRTSPSCPSFTPSMBSMBSSMTPSMTPSTELNETTFTPWSWSS。 从PHP 8.3.0和cURL 7.85.0版本开始可用。

CURLOPT_PROXY (整数)

一个字符串,包含要通过其隧道请求的HTTP代理。这应该是主机名、点分十进制IP地址或用括号括起来的数值IPv6地址。 从cURL 7.1.0版本开始可用。

CURLOPT_PROXYAUTH (整数)

要用于代理连接的HTTP身份验证方法(CURLAUTH_*常量)的位掩码。对于代理身份验证,目前仅支持CURLAUTH_BASICCURLAUTH_NTLM。默认为CURLAUTH_BASIC。 从cURL 7.10.7版本开始可用。

CURLOPT_PROXYHEADER (整数)

一个包含自定义HTTP标头字符串数组,用于传递给代理。 从PHP 7.0.7和cURL 7.37.0版本开始可用。

CURLOPT_PROXYPASSWORD (整数)

设置一个字符串,其中包含要用于与代理进行身份验证的密码。 从cURL 7.19.1版本开始可用。

CURLOPT_PROXYPORT (整数)

一个表示要连接到的代理服务器端口号的int类型整数。此端口号也可以在CURLOPT_PROXY中设置。将其设置为零将使cURL使用默认的代理端口号或在代理URL string字符串中指定的端口号。 从cURL 7.1.0版本开始可用。

CURLOPT_PROXYTYPE (int)

将代理类型设置为CURLPROXY_* 常量之一。默认为CURLPROXY_HTTP。从cURL 7.10版本开始可用。

CURLOPT_PROXYUSERNAME (int)

设置一个用于与代理进行身份验证的用户名string字符串。从cURL 7.19.1版本开始可用。

CURLOPT_PROXYUSERPWD (int)

一个string字符串,包含用户名和密码,格式为[username]:[password],用于连接到代理。从cURL 7.1.0版本开始可用。

CURLOPT_PROXY_CAINFO (int)

代理证书颁发机构 (CA) 捆绑包的路径。设置为一个string字符串,指定包含一个或多个证书的文件的名称,用于验证 HTTPS 代理。此选项用于连接到 HTTPS 代理,而不是 HTTPS 服务器。默认为cURL的cacert捆绑包的系统路径。从PHP 7.3.0和cURL 7.52.0版本开始可用。

CURLOPT_PROXY_CAINFO_BLOB (int)

一个string字符串,包含PEM文件的名称,该文件包含一个或多个证书,用于验证 HTTPS 代理。此选项用于连接到 HTTPS 代理,而不是 HTTPS 服务器。默认为cURL的cacert捆绑包的系统路径。从PHP 8.2.0和cURL 7.77.0版本开始可用。

CURLOPT_PROXY_CAPATH (int)

一个string字符串,包含用于验证 HTTPS 代理的多个 CA 证书所在的目录。从PHP 7.3.0和cURL 7.52.0版本开始可用。

CURLOPT_PROXY_CRLFILE (int)

设置为一个string字符串,包含PEM格式的CRL(证书吊销列表)连接的文件名,用于在SSL交换期间发生的证书验证中。从PHP 7.3.0和cURL 7.52.0版本开始可用。

CURLOPT_PROXY_ISSUERCERT (string类型整数)

代理颁发者SSL证书文件名string字符串。从PHP 8.1.0和cURL 7.71.0版本开始可用。

CURLOPT_PROXY_ISSUERCERT_BLOB (int)

一个string字符串,包含代理颁发者SSL证书。从PHP 8.1.0和cURL 7.71.0版本开始可用。

CURLOPT_PROXY_KEYPASSWD (int)

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

CURLOPT_PROXY_PINNEDPUBLICKEY (int)

设置HTTPS代理的固定公钥。string字符串可以是固定公钥的文件名,该文件名应为PEMDER文件格式。string字符串也可以是任意数量的base64编码的sha256哈希值,前面是sha256//,并用;分隔。从PHP 7.3.0和cURL 7.52.0版本开始可用。

CURLOPT_PROXY_SERVICE_NAME (int)

一个string字符串,包含代理身份验证服务名称。从PHP 7.0.7、cURL 7.43.0(对于HTTP代理)和cURL 7.49.0(对于SOCKS5代理)版本开始可用。

CURLOPT_PROXY_SSLCERT (int)

一个string字符串,包含用于连接到HTTPS代理的客户端证书的文件名。默认格式在安全传输上为P12,在其他引擎上为PEM,可以使用CURLOPT_PROXY_SSLCERTTYPE更改。使用NSS或安全传输时,这也可以是用于身份验证的证书的昵称,因为它是安全数据库中的名称。如果要使用当前目录中的文件,则必须在前面加上./,以避免与昵称混淆。从PHP 7.3.0和cURL 7.52.0版本开始可用。

CURLOPT_PROXY_SSLCERTTYPE (int)

一个string字符串,包含连接到HTTPS代理时使用的客户端证书的格式。支持的格式为PEMDER,安全传输除外。OpenSSL(0.9.3及更高版本)和安全传输(iOS 5或更高版本,或OS X 10.7或更高版本)也支持P12(用于PKCS#12编码的文件)。默认为PEM。从PHP 7.3.0和cURL 7.52.0版本开始可用。

CURLOPT_PROXY_SSLCERT_BLOB (int)

一个string字符串,包含SSL代理客户端证书。从PHP 8.1.0和cURL 7.71.0版本开始可用。

CURLOPT_PROXY_SSLKEY (int)

一个string字符串,包含用于连接到HTTPS代理的私钥的文件名。默认格式为PEM,可以使用CURLOPT_PROXY_SSLKEYTYPE更改。(仅限iOS和Mac OS X)如果cURL是针对安全传输构建的,则忽略此选项。如果使用TLS启用构建,则可用。从PHP 7.3.0和cURL 7.52.0版本开始可用。

CURLOPT_PROXY_SSLKEYTYPE (int)

一个string字符串,包含私钥的格式。支持的格式为:PEMDERENG。从PHP 7.3.0和cURL 7.52.0版本开始可用。

CURLOPT_PROXY_SSLKEY_BLOB (int)

一个string字符串,包含用于连接到HTTPS代理的私钥。从PHP 8.1.0和cURL 7.71.0版本开始可用。

CURLOPT_PROXY_SSLVERSION (int)

将首选的HTTPS代理TLS版本设置为CURL_SSLVERSION_*常量之一。默认为CURL_SSLVERSION_DEFAULT

警告

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

从PHP 7.3.0和cURL 7.52.0版本开始可用。

CURLOPT_PROXY_SSL_CIPHER_LIST (int)

一个string字符串,包含用于连接到HTTPS代理的密码的冒号分隔列表。与OpenSSL一起使用时,逗号和空格也可以作为分隔符,并且可以使用!-+作为运算符。从PHP 7.3.0和cURL 7.52.0版本开始可用。

CURLOPT_PROXY_SSL_OPTIONS (int)

设置代理SSL行为选项,它是CURLSSLOPT_*常量的位掩码。从PHP 7.3.0和cURL 7.52.0版本开始可用。

CURLOPT_PROXY_SSL_VERIFYHOST (int)

设置为2以验证HTTPS代理的证书名称字段与代理名称是否匹配。设置为0时,无论证书中使用的名称如何,连接都将成功。谨慎使用此功能!在cURL 7.28.0及更早版本中设置为1作为调试选项。在cURL 7.28.1到7.65.3中设置为1时将返回CURLE_BAD_FUNCTION_ARGUMENT。从cURL 7.66.0开始,12被视为相同的值。默认为2。在生产环境中,此选项的值应保持为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 密码套件。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_USERNAME** 和 **CURLOPT_PROXY_TLSAUTH_PASSWORD** 选项。

从PHP 7.3.0和cURL 7.52.0版本开始可用。

CURLOPT_PROXY_TLSAUTH_USERNAME (int)

用于通过 **CURLOPT_PROXY_TLSAUTH_TYPE** 选项指定的 HTTPS 代理 TLS 身份验证方法的用户名。需要同时设置 **CURLOPT_PROXY_TLSAUTH_PASSWORD** 选项。PHP 7.3.0 和 cURL 7.52.0 版本可用。

CURLOPT_PROXY_TRANSFER_MODE (int)

设置为 1 以设置通过 HTTP 代理执行的 FTP 传输的传输模式(二进制或 ASCII),方法是在 URL 后附加 type=atype=i。如果没有此设置或将其设置为 0,则在通过代理执行 FTP 时,**CURLOPT_TRANSFERTEXT** 将无效。默认为 0。cURL 7.18.0 版本可用。

CURLOPT_PUT (int)

设置为true 以执行 HTTP PUT 文件操作。要 PUT 的文件必须使用 **CURLOPT_READDATA** 和 **CURLOPT_INFILESIZE** 设置。cURL 7.1.0 版本可用,cURL 7.12.1 版本已弃用。

CURLOPT_QUICK_EXIT (int)

设置为true 以使 cURL 在从超时恢复时跳过资源清理。这允许快速终止 cURL 进程,但可能会导致关联资源泄漏。PHP 8.3.0 和 cURL 7.87.0 版本可用。

CURLOPT_QUOTE (int)

一个 FTP 命令字符串数组,用于在 FTP 请求之前在服务器上执行。cURL 7.1.0 版本可用。

CURLOPT_RANDOM_FILE (int)

一个字符串,包含用于为 SSL 播种随机数生成器的文件名。cURL 7.7.0 版本可用,cURL 7.84.0 版本已弃用。

CURLOPT_RANGE (int)

一个字符串,包含要检索的数据范围,格式为 X-Y,其中 X 或 Y 可选。HTTP 传输还支持多个区间,用逗号分隔,格式为 X-Y,N-M。设置为null 以禁用请求字节范围。cURL 7.1.0 版本可用。

CURLOPT_READDATA (int)

设置一个文件指针资源,该资源将由使用 **CURLOPT_READFUNCTION** 设置的文件读取函数使用。cURL 7.9.7 版本可用。

CURLOPT_READFUNCTION (int)

具有以下签名的 callable

回调函数(resource $curlHandle, resource $streamResource, int $maxAmountOfDataToRead): string
curlHandle
cURL句柄。
streamResource
通过选项 **CURLOPT_READDATA** 提供给 cURL 的流资源。
maxAmountOfDataToRead
要读取的最大数据量。
回调函数应返回一个字符串,其长度等于或小于请求的数据量,通常通过从传递的流资源中读取数据来实现。它应该返回一个空字符串来表示 EOF。cURL 7.1.0 版本可用。

CURLOPT_REDIR_PROTOCOLS (int)

**CURLPROTO_*** 值的位掩码,它限制了 cURL 在启用 **CURLOPT_FOLLOWLOCATION** 时,在重定向中跟随的传输中可以使用哪些协议。这允许将特定传输限制为仅允许在重定向中使用子集协议。从 cURL 7.19.4 开始,默认情况下,cURL 将允许所有协议,除了 FILESCP。在 cURL 7.19.4 之前,cURL 将无条件地跟随所有支持的协议。另请参阅 **CURLOPT_PROTOCOLS** 获取协议常量值。cURL 7.19.4 版本可用,cURL 7.85.0 版本已弃用。

CURLOPT_REDIR_PROTOCOLS_STR (int)

设置为一个字符串,其中包含逗号分隔的协议名称(URL 方案)列表(不区分大小写),允许在启用 **CURLOPT_FOLLOWLOCATION** 时在重定向中跟随。设置为 ALL 以启用所有协议。从 cURL 7.65.2 开始,它默认为 FTPFTPSHTTPHTTPS。从 cURL 7.40.0 到 7.65.1,它默认为除 FILESCPSMBSMBS 之外的所有协议。在 cURL 7.40.0 之前,它默认为除 FILESCP 之外的所有协议。可用协议为:DICTFILEFTPFTPSGOPHERGOPHERSHTTPHTTPSIMAPIMAPSLDAPLDAPSMQTTPOP3POP3SRTMPRTMPERTMPSRTMPTRTMPTERTMPTSRTSPSCPSFTPSMBSMBSSMTPSMTPSTELNETTFTPWSWSS。PHP 8.3.0 和 cURL 7.85.0 版本可用。

CURLOPT_REFERER (int)

一个字符串,包含要在 HTTP 请求中使用的 Referer: 头的内容。cURL 7.1.0 版本可用。

CURLOPT_REQUEST_TARGET (int)

一个字符串,用于在即将发出的请求中代替从 URL 中提取的路径。PHP 7.3.0 和 cURL 7.55.0 版本可用。

CURLOPT_RESOLVE (int)

提供一个冒号分隔的字符串数组,其中包含特定主机和端口对的自定义地址,格式如下: array( "example.com:80:127.0.0.1", "example2.com:443:127.0.0.2", ) cURL 7.21.3 版本可用。

CURLOPT_RESUME_FROM (int)

以字节为单位的偏移量,用于从该偏移量恢复传输。此选项接受任何可以转换为有效整数的值。cURL 7.1.0 版本可用。

CURLOPT_RETURNTRANSFER (int)

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

CURLOPT_RTSP_CLIENT_CSEQ (int)

设置一个整数,用于为下一个 RTSP 请求发出 CSEQ 编号。如果应用程序正在恢复先前断开的连接,则很有用。此后,CSEQ 将从此新编号递增。默认为 0。cURL 7.20.0 版本可用。

CURLOPT_RTSP_REQUEST (int)

设置要发出的 RTSP 请求类型。必须是 **CURL_RTSPREQ_*** 常量之一。cURL 7.20.0 及更高版本可用。

CURLOPT_RTSP_SERVER_CSEQ (int)

设置一个 int,表示下一个 RTSP 服务器到客户端请求的预期 CSEQ 编号。此功能(侦听服务器请求)未实现。默认为 0。cURL 7.20.0 及更高版本可用。

CURLOPT_RTSP_SESSION_ID (int)

设置一个 string,表示句柄的当前 RTSP 会话 ID 的值。一旦此值设置为任何非 **null** 值,如果从服务器接收到的 ID 不匹配,则 cURL 返回 **CURLE_RTSP_SESSION_ERROR**。如果设置为 **null**,则 cURL 会在服务器第一次在响应中设置 ID 时自动设置 ID。默认为 **null**。cURL 7.20.0 及更高版本可用。

CURLOPT_RTSP_STREAM_URI (int)

设置一个 string,表示要操作的流 URI。如果未设置,cURL 默认通过在 RTSP 流 URI 的位置传递 * 来操作通用服务器选项。在使用 RTSP 时,CURLOPT_RTSP_STREAM_URI 指示在请求头中发送到服务器的 URL,而 CURLOPT_URL 指示连接的位置。cURL 7.20.0 及更高版本可用。

CURLOPT_RTSP_TRANSPORT (int)

设置此 RTSP 会话的 Transport: 头。cURL 7.20.0 及更高版本可用。

CURLOPT_SAFE_UPLOAD (int)

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

CURLOPT_SASL_AUTHZID (string)

传输的授权标识 (authzid) string。仅适用于 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 (string)

一个 string,包含身份验证服务名称。PHP 7.0.7 和 cURL 7.43.0 及更高版本可用。

CURLOPT_SHARE (int)

curl_share_init() 的结果。使 cURL 句柄使用共享句柄中的数据。cURL 7.10 及更高版本可用。

CURLOPT_SOCKS5_AUTH (int)

要使用的 SOCKS5 身份验证方法。选项包括:CURLAUTH_BASIC, CURLAUTH_GSSAPI, CURLAUTH_NONE。设置多个方法时,cURL 将轮询服务器以查看其支持哪些方法并选择最佳方法。默认为 CURLAUTH_BASIC|CURLAUTH_GSSAPI。使用 **CURLOPT_PROXYUSERPWD** 选项设置实际用户名和密码。PHP 7.3.0 和 cURL 7.55.0 及更高版本可用。

CURLOPT_SOCKS5_GSSAPI_NEC (int)

设置为 1 表示启用,设置为 0 表示禁用作为 GSSAPI 协商一部分的保护模式协商的非保护交换。cURL 7.19.4 及更高版本可用。

CURLOPT_SOCKS5_GSSAPI_SERVICE (string)

设置一个 string,包含 SOCKS5 服务的名称。默认为 rcmd。cURL 7.19.4 及更高版本可用,cURL 7.49.0 及更高版本已弃用。请改用 **CURLOPT_PROXY_SERVICE_NAME**。

CURLOPT_SSH_AUTH_TYPES (int)

一个位掩码,由一个或多个以下常量组成:CURLSSH_AUTH_PUBLICKEY, CURLSSH_AUTH_PASSWORD, CURLSSH_AUTH_HOST, CURLSSH_AUTH_KEYBOARD, CURLSSH_AUTH_AGENT, CURLSSH_AUTH_ANY。默认为 **CURLSSH_AUTH_ANY**。cURL 7.16.1 及更高版本可用。

CURLOPT_SSH_COMPRESSION (int)

true 表示启用,false 表示禁用内置 SSH 压缩。请注意,服务器可以忽略此请求。默认为 **false**。PHP 7.3.0 和 cURL 7.56.0 及更高版本可用。

CURLOPT_SSH_HOSTKEYFUNCTION (callable)

当需要 SSH 主机密钥验证时将调用的 callable。回调必须具有以下签名

回调函数(
    资源 $curlHandle,
    int $keyType,
    string $key,
    int $keyLength
): 整数
curlHandle
cURL句柄。
keyType
CURLKHTYPE_* 密钥类型之一。
key
要检查的密钥。
keyLength
密钥的长度(以字节为单位)。
此回调会覆盖 **CURLOPT_SSH_KNOWNHOSTS**。PHP 8.3.0 和 cURL 7.84.0 及更高版本可用。

CURLOPT_SSH_HOST_PUBLIC_KEY_MD5 (string)

一个包含 32 个十六进制数字的 string,应包含远程主机公钥的 MD5 校验和,除非 md5sums 匹配,否则 cURL 将拒绝与主机的连接。此选项仅适用于 SCP 和 SFTP 传输。cURL 7.17.1 及更高版本可用。

CURLOPT_SSH_HOST_PUBLIC_KEY_SHA256 (string)

一个 string,包含远程主机公钥的 base64 编码 SHA256 哈希值。如果给定的哈希值与远程主机提供的哈希值不匹配,则传输将失败。PHP 8.2.0 和 cURL 7.80.0 及更高版本可用。

CURLOPT_SSH_KNOWNHOSTS (int)

设置为要使用的 known_host 文件的文件名,该文件应使用 libssh2 支持的 OpenSSH 文件格式。cURL 7.19.6 及更高版本可用。

CURLOPT_SSH_PRIVATE_KEYFILE (int)

私钥的文件名。如果未使用,则如果设置了 HOME 环境变量,cURL 默认使用 $HOME/.ssh/id_dsa,如果未设置 HOME,则在当前目录中使用 id_dsa。如果文件受密码保护,请使用 **CURLOPT_KEYPASSWD** 设置密码。cURL 7.16.1 及更高版本可用。

CURLOPT_SSH_PUBLIC_KEYFILE (int)

公钥的文件名。如果未使用,则如果设置了 HOME 环境变量,cURL 默认使用 $HOME/.ssh/id_dsa.pub,如果未设置 HOME,则在当前目录中使用 id_dsa.pub。cURL 7.16.1 及更高版本可用。

CURLOPT_SSLCERT (int)

包含 PEM 格式证书的文件名。cURL 7.1.0 及更高版本可用。

CURLOPT_SSLCERTPASSWD (int)

使用 **CURLOPT_SSLCERT** 证书所需的密码。cURL 7.1.0 及更高版本可用,cURL 7.17.0 及更高版本已弃用。

CURLOPT_SSLCERTTYPE (string)

一个 string,包含证书的格式。支持的格式包括:PEM, DER, ENG, P12P12(用于 PKCS#12 编码的文件)自 OpenSSL 0.9.3 起可用。默认为 PEM。cURL 7.9.3 及更高版本可用。

CURLOPT_SSLCERT_BLOB (string)

一个 string,包含 SSL 客户端证书。PHP 8.1.0 和 cURL 7.71.0 及更高版本可用。

CURLOPT_SSLENGINE (string)

CURLOPT_SSLKEY 中指定的私有 SSL 密钥的加密引擎的 string 标识符。cURL 7.9.3 及更高版本可用。

CURLOPT_SSLENGINE_DEFAULT (string)

用于非对称加密操作的加密引擎的 string 标识符。cURL 7.9.3 及更高版本可用。

CURLOPT_SSLKEY (int)

包含私有 SSL 密钥的文件名。自 cURL 7.9.3 版本起可用。

CURLOPT_SSLKEYPASSWD (int)

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

注意:

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

自 cURL 7.9.3 版本起可用,自 cURL 7.17.0 版本起已弃用。

CURLOPT_SSLKEYTYPE (int)

CURLOPT_SSLKEY中指定的私有 SSL 密钥的密钥类型。支持的密钥类型为:PEM, DER, ENG。默认为 PEM。自 cURL 7.9.3 版本起可用。

CURLOPT_SSLKEY_BLOB (int)

客户端证书的string类型私钥。自 PHP 8.1.0 和 cURL 7.71.0 版本起可用。

CURLOPT_SSLVERSION (int)

CURL_SSLVERSION_* 常量之一。

警告

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

默认为CURL_SSLVERSION_DEFAULT。自 cURL 7.1.0 版本起可用。

CURLOPT_SSL_CIPHER_LIST (int)

用于 TLS 1.2 (1.1, 1.0) 连接的以冒号分隔的string类型的密码列表。自 cURL 7.9 版本起可用。

CURLOPT_SSL_EC_CURVES (int)

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

CURLOPT_SSL_ENABLE_ALPN (int)

设置为false以禁用 SSL 握手中的 ALPN(如果构建 cURL 的 SSL 后端支持),这可用于协商 http2。自 PHP 7.0.7 和 cURL 7.36.0 版本起可用。

CURLOPT_SSL_ENABLE_NPN (int)

设置为false以禁用 SSL 握手中的 NPN(如果构建 cURL 的 SSL 后端支持),这可用于协商 http2。自 PHP 7.0.7 和 cURL 7.36.0 版本起可用,自 cURL 7.86.0 版本起已弃用。

CURLOPT_SSL_FALSESTART (int)

设置为true以启用,设置为false以禁用 TLS 快速启动,这是一种 TLS 客户端在验证服务器的 Finished 消息之前开始发送应用程序数据的模式。自 PHP 7.0.7 和 cURL 7.42.0 版本起可用。

CURLOPT_SSL_OPTIONS (int)

设置 SSL 行为选项,它是CURLSSLOPT_* 常量的位掩码。默认为没有设置任何位。自 PHP 7.0.7 和 cURL 7.25.0 版本起可用。

CURLOPT_SSL_SESSIONID_CACHE (int)

设置为 0 以禁用,设置为 1 以启用 SSL session-ID 缓存。默认情况下,所有传输都使用启用的缓存进行。自 cURL 7.16.0 版本起可用。

CURLOPT_SSL_VERIFYHOST (int)

设置为 2 以验证 SSL 对等证书中的“通用名称”字段或“主题备用名称”字段是否与提供的主机名匹配。设置为 0 表示不检查名称。不应使用 1。在生产环境中,此选项的值应保持为 2(默认值)。cURL 7.28.1 中已移除对值 1 的支持。自 cURL 7.8.1 版本起可用。

CURLOPT_SSL_VERIFYPEER (int)

设置为false以阻止 cURL 验证对等方的证书。可以使用CURLOPT_CAINFO选项指定要验证的其他证书,或者可以使用CURLOPT_CAPATH选项指定证书目录。自 cURL 7.10 版本起默认为true。自 cURL 7.10 版本起安装默认的 CA 证书包。自 cURL 7.4.2 版本起可用。

CURLOPT_SSL_VERIFYSTATUS (int)

设置为true以启用,设置为false以禁用证书状态的验证。自 PHP 7.0.7 和 cURL 7.41.0 版本起可用。

CURLOPT_STDERR (resource)

接受指向替代位置的resource类型的文件句柄,以将错误输出到该位置,而不是STDERR。自 cURL 7.1.0 版本起可用。

CURLOPT_STREAM_WEIGHT (int)

设置数值流权重(介于 1256 之间的数字)。自 PHP 7.0.7 和 cURL 7.46.0 版本起可用。

CURLOPT_SUPPRESS_CONNECT_HEADERS (int)

设置为true以禁止代理 CONNECT 响应头从用户回调函数CURLOPT_HEADERFUNCTIONCURLOPT_WRITEFUNCTION中返回,当使用CURLOPT_HTTPPROXYTUNNEL并发出 CONNECT 请求时。默认为false。自 PHP 7.3.0 和 cURL 7.54.0 版本起可用。

CURLOPT_TCP_FASTOPEN (int)

设置为true以启用,设置为false以禁用 TCP 快速打开。自 PHP 7.0.7 和 cURL 7.49.0 版本起可用。

CURLOPT_TCP_KEEPALIVE (int)

如果设置为 1,则将发送 TCP 保活探测。可以使用CURLOPT_TCP_KEEPIDLECURLOPT_TCP_KEEPINTVL选项控制这些探测的延迟和频率,前提是操作系统支持它们。如果设置为 0(默认值),则禁用保活探测。可以使用CURLOPT_TCP_KEEPCNT选项设置最大探测次数。自 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_KEEPCNT (int)

设置 TCP 保活探测的最大次数。默认为 9。自 PHP 8.4.0 和 cURL 8.9.0 版本起可用。

CURLOPT_TCP_NODELAY (int)

设置为true以禁用 TCP 的 Nagle 算法,该算法尝试最大限度地减少网络上的小数据包数量。默认为true。自 cURL 7.11.2 版本起可用。

CURLOPT_TELNETOPTIONS (int)

设置要传递给 telnet 协商的array类型的string列表。变量应采用 >option=value< 的格式。cURL 支持 TTYPEXDISPLOCNEW_ENV 选项。自 cURL 7.7.0 版本起可用。

CURLOPT_TFTP_BLKSIZE (int)

设置TFTP数据传输使用的块大小。有效范围是8-65464字节。如果未指定此选项,则使用默认值512字节。只有在远程服务器支持的情况下,才会使用指定的块大小。如果服务器没有返回选项确认或返回的选项确认中没有块大小,则使用默认值512字节。从cURL 7.19.4版本开始可用。

CURLOPT_TFTP_NO_OPTIONS (int)

设置为true 不发送TFTP选项请求。默认为false。从PHP 7.0.7和cURL 7.48.0版本开始可用。

CURLOPT_TIMECONDITION (int)

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

CURLOPT_TIMEOUT (int)

允许cURL函数执行的最大秒数。默认为0,这意味着函数在传输过程中永远不会超时。从cURL 7.1.0版本开始可用。

CURLOPT_TIMEOUT_MS (int)

允许cURL函数执行的最大毫秒数。如果cURL构建为使用标准系统名称解析器,则连接的该部分仍将使用全秒分辨率进行超时,允许的最小超时为一秒。默认为0,这意味着函数在传输过程中永远不会超时。从cURL 7.16.2版本开始可用。

CURLOPT_TIMEVALUE (int)

自1970年1月1日以来的秒数。此时间将由CURLOPT_TIMECONDITION使用。默认为0。从cURL 7.1.0版本开始可用。

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)

一个用冒号分隔的密码列表组成的string,用于TLS 1.3连接的连接。此选项当前仅在cURL构建为使用OpenSSL 1.1.1或更高版本时使用。当使用不同的SSL后端时,可以使用CURLOPT_SSL_CIPHER_LIST选项设置TLS 1.3密码套件。从PHP 7.3.0和cURL 7.61.0版本开始可用。

CURLOPT_TLSAUTH_PASSWORD (int)

设置一个密码,用于使用CURLOPT_TLSAUTH_TYPE选项指定的TLS身份验证方法。需要同时设置CURLOPT_TLSAUTH_USERNAME选项。此功能依赖于TLS SRP,它不适用于TLS 1.3。从cURL 7.21.4版本开始可用。

CURLOPT_TLSAUTH_TYPE (int)

设置一个包含TLS身份验证方法的string。支持的方法是SRP(TLS安全远程密码身份验证)。从cURL 7.21.4版本开始可用。

CURLOPT_TLSAUTH_USERNAME (int)

设置一个string,包含用于使用CURLOPT_TLSAUTH_TYPE选项指定的TLS身份验证方法的用户名。需要同时设置CURLOPT_TLSAUTH_PASSWORD选项。此功能依赖于TLS SRP,它不适用于TLS 1.3。从cURL 7.21.4版本开始可用。

CURLOPT_TRANSFER_ENCODING (int)

设置为1启用,设置为0禁用在传出的HTTP请求中请求压缩的Transfer Encoding。如果服务器响应压缩的Transfer Encoding,cURL将在接收时自动解压缩它。默认为0。从cURL 7.21.6版本开始可用。

CURLOPT_TRANSFERTEXT (int)

设置为true 使用ASCII模式进行FTP传输。对于LDAP,它以纯文本而不是HTML检索数据。在Windows系统上,它不会将STDOUT设置为二进制模式。默认为false。从cURL 7.1.1版本开始可用。

CURLOPT_UNIX_SOCKET_PATH (int)

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

CURLOPT_UNRESTRICTED_AUTH (int)

设置为true 即使主机名已更改,在跟踪位置(使用CURLOPT_FOLLOWLOCATION)时继续发送用户名和密码。默认为false。从cURL 7.10.4版本开始可用。

CURLOPT_UPKEEP_INTERVAL_MS (int)

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

CURLOPT_UPLOAD (int)

设置为true 以准备并执行上传。默认为false。从cURL 7.1.0版本开始可用。

CURLOPT_UPLOAD_BUFFERSIZE (int)

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

CURLOPT_URL (int)

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

CURLOPT_USE_SSL (int)

在使用FTP、SMTP、POP3、IMAP等协议时设置所需的SSL/TLS级别。这些都是从纯文本开始并使用STARTTLS命令“升级”到SSL的协议。设置为CURLUSESSL_*常量之一。从cURL 7.17.0版本开始可用。

CURLOPT_USERAGENT (int)

要在HTTP请求中使用的User-Agent: 标头的内容。从cURL 7.1.0版本开始可用。

CURLOPT_USERNAME (int)

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

CURLOPT_USERPWD (int)

格式为[username]:[password]的用户名和密码,用于连接。从cURL 7.1.0版本开始可用。

CURLOPT_VERBOSE (int)

设置为true 以输出详细的信息。输出写入到STDERR,或者使用CURLOPT_STDERR指定的 文件。默认为false。从 cURL 7.1.0 开始可用。

CURLOPT_WILDCARDMATCH (int)

设置为 1 以根据文件名模式传输多个文件。模式可以作为CURLOPT_URL选项的一部分指定,在URL的最后一部分(文件名)使用类似 fnmatch 的模式(Shell 模式匹配)。从 cURL 7.21.0 开始可用。

CURLOPT_WRITEFUNCTION (int)

具有以下签名的 callable

回调函数(资源 $curlHandle, 字符串 $data): int
curlHandle
cURL句柄。
data
要写入的数据。
回调函数必须保存数据,并返回写入的字节数,否则传输将因错误而中止。从 cURL 7.1.0 开始可用。

CURLOPT_WRITEHEADER (int)

接收指向文件的句柄 资源,传输的头部部分将写入到该文件。从 cURL 7.1.0 开始可用。

CURLOPT_WS_OPTIONS (int)

接收设置 WebSocket 行为选项的位掩码。唯一可用的选项是CURLWS_RAW_MODE。默认为 0。从 PHP 8.3.0 和 cURL 7.86.0 开始可用。

CURLOPT_XFERINFOFUNCTION (int)

具有以下签名的 callable

回调函数(
    资源 $curlHandle,
    整数 $bytesToDownload,
    整数 $bytesDownloaded,
    整数 $bytesToUpload,
    整数 $bytesUploaded
): 整数
curlHandle
cURL句柄。
bytesToDownload
此传输中预期下载的总字节数。
bytesDownloaded
到目前为止已下载的字节数。
bytesToUpload
此传输中预期上传的总字节数。
bytesUploaded
到目前为止已上传的字节数。
返回 1 以中止传输并设置CURLE_ABORTED_BY_CALLBACK错误。从 PHP 8.2.0 和 cURL 7.32.0 开始可用。

CURLOPT_SERVER_RESPONSE_TIMEOUT (int)

cURL 将等待来自 FTPSFTPIMAPSCPSMTPPOP3 服务器的响应的超时时间(以秒为单位)。此选项替换了 cURL 7.85.0 中已弃用的现有CURLOPT_FTP_RESPONSE_TIMEOUT选项。从 PHP 8.4.0 开始可用。

CURLOPT_XOAUTH2_BEARER (int)

指定 OAuth 2.0 访问令牌。设置为null以禁用。默认为null。从 PHP 7.0.7 和 cURL 7.33.0 开始可用。

CURLOPT_PREREQFUNCTION (int)

具有以下签名的可调用,在建立连接后但在发送请求有效负载(例如,HTTP 连接的 GET/POST/DELETE 请求)之前调用,可根据源和目标 IP 地址以及端口号中止或允许连接。

回调函数(
    CurlHandle $curlHandle,
    字符串 $destination_ip,
    字符串 $local_ip,
    int $destination_port,
    int $local_port
): 整数
curlHandle
cURL句柄。
destination_ip
与该连接建立的远程服务器的主 IP。对于 FTP,这是控制连接的 IP。IPv6 地址表示时不带括号。
local_ip
此连接的发起 IP。IPv6 地址表示时不带括号。
destination_port
与该连接建立的远程服务器上的主端口号。对于 FTP,这是控制连接的端口。这可以是 TCP 端口号或 UDP 端口号,具体取决于协议。
local_port
此连接的发起端口号。这可以是 TCP 端口号或 UDP 端口号,具体取决于协议。
返回CURL_PREREQFUNC_OK以允许请求,或返回CURL_PREREQFUNC_ABORT以中止传输。从 PHP 8.4.0 和 cURL 7.80.0 开始可用。

CURLOPT_DEBUGFUNCTION (int)

从 PHP 8.4.0 开始可用。此选项需要启用CURLOPT_VERBOSE选项。可调用 用于替换标准的 cURL 详细输出。此回调函数在请求的不同阶段使用详细的调试信息进行调用。回调函数应与以下签名匹配:

回调函数(CurlHandle $curlHandle, int $type, 字符串 $data): void
curlHandle
cURL句柄。
type
data 值类型的以下常量之一:
常量 描述
CURLINFO_TEXT (int) 信息文本。
CURLINFO_HEADER_IN (int) 从对等方接收到的标头(或类似标头)数据。
CURLINFO_HEADER_OUT (int) 发送到对等方的标头(或类似标头)数据。
CURLINFO_DATA_IN (int) 从对等方接收到的未处理的协议数据。即使数据已编码或压缩,也不会在此回调函数中提供解码或解压缩的数据。
CURLINFO_DATA_OUT (int) 发送到对等方的协议数据。
CURLINFO_SSL_DATA_IN (int) 从对等方接收到的SSL/TLS(二进制)数据。
CURLINFO_SSL_DATA_OUT (int) 发送到对等方的SSL/TLS(二进制)数据。
data
type 参数指示类型的详细调试数据。

curl_share_setopt()
常量 描述
CURL_LOCK_DATA_CONNECT (int) 共享/取消共享连接缓存。从 PHP 7.3.0 和 cURL 7.10.3 开始可用。
共享/取消共享 Cookie 数据。从 cURL 7.10.3 开始可用。
CURL_LOCK_DATA_DNS (int) 共享/取消共享 DNS 缓存。请注意,当您使用 cURL 多句柄时,默认情况下,添加到同一多句柄的所有句柄都将共享 DNS 缓存。从 cURL 7.10.3 开始可用。
CURL_LOCK_DATA_PSL (int) 共享/取消共享公共后缀列表。从 PHP 7.3.0 和 cURL 7.61.0 开始可用。
CURL_LOCK_DATA_SSL_SESSION (int) 共享/取消共享 SSL 会话 ID,减少重新连接到同一服务器时 SSL 握手花费的时间。请注意,默认情况下,在同一句柄内重用 SSL 会话 ID。从 cURL 7.10.3 开始可用。
CURLSHOPT_NONE (int) 从 cURL 7.10.3 开始可用。
CURLSHOPT_SHARE (int) 指定应共享的数据类型。从 cURL 7.10.3 开始可用。
CURLSHOPT_UNSHARE (int) 指定将不再共享的数据类型。从 cURL 7.10.3 开始可用。
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 连接中使用的协议。返回值将恰好是 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 及更高版本可用。
CURLINFO_POSTTRANSFER_TIME_T (int) 从开始到发送最后一个字节所花费的时间(微秒)。PHP 8.4.0 和 cURL 8.10.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) cURL 7.19.4 及更高版本可用。
CURLPROTO_DICT (int) cURL 7.19.4 及更高版本可用。
CURLPROTO_FILE (int) cURL 7.19.4 及更高版本可用。
CURLPROTO_FTP (int) cURL 7.19.4 及更高版本可用。
CURLPROTO_FTPS (int) cURL 7.19.4 及更高版本可用。
CURLPROTO_GOPHER (int) cURL 7.21.2 及更高版本可用。
CURLPROTO_HTTP (int) cURL 7.19.4 及更高版本可用。
CURLPROTO_HTTPS (int) cURL 7.19.4 及更高版本可用。
CURLPROTO_IMAP (int) cURL 7.20.0 及更高版本可用。
CURLPROTO_IMAPS (int) cURL 7.20.0 及更高版本可用。
CURLPROTO_LDAP (int) cURL 7.19.4 及更高版本可用。
CURLPROTO_LDAPS (int) cURL 7.19.4 及更高版本可用。
CURLPROTO_MQTT (int) PHP 8.2.0 和 cURL 7.71.0 及更高版本可用。
CURLPROTO_POP3 (int) cURL 7.20.0 及更高版本可用。
CURLPROTO_POP3S (int) cURL 7.20.0 及更高版本可用。
CURLPROTO_RTMP (int) cURL 7.21.0 及更高版本可用。
CURLPROTO_RTMPE (int) cURL 7.21.0 及更高版本可用。
CURLPROTO_RTMPS (int) cURL 7.21.0 及更高版本可用。
CURLPROTO_RTMPT (int) cURL 7.21.0 及更高版本可用。
CURLPROTO_RTMPTE (int) cURL 7.21.0 及更高版本可用。
CURLPROTO_RTMPTS (int) cURL 7.21.0 及更高版本可用。
CURLPROTO_RTSP (int) cURL 7.20.0 及更高版本可用。
CURLPROTO_SCP (int) cURL 7.19.4 及更高版本可用。
CURLPROTO_SFTP (int) cURL 7.19.4 及更高版本可用。
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) cURL 7.20.0 及更高版本可用。
CURLPROTO_SMTPS (int) cURL 7.20.0 及更高版本可用。
CURLPROTO_TELNET (int) cURL 7.19.4 及更高版本可用。
CURLPROTO_TFTP (int) cURL 7.19.4 及更高版本可用。
cURL 错误常量
常量 描述
CURLE_ABORTED_BY_CALLBACK (int) 回调函数终止。回调函数向 libcurl 返回了“abort”。
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 服务器返回 227 行作为对 PASV 命令的响应。如果 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_<span class="replaceable">*</span> 状态常量
常量 描述
CURLM_ADDED_ALREADY (int) 尝试将已添加到多句柄的易句柄再次添加。从cURL 7.32.1版本开始可用。
CURLM_BAD_EASY_HANDLE (int) 易句柄无效。这可能意味着它根本不是易句柄,或者此句柄已被此多句柄或其他多句柄使用。从cURL 7.9.6版本开始可用。
CURLM_BAD_HANDLE (int) 传入的句柄不是有效的多句柄。从cURL 7.9.6版本开始可用。
CURLM_CALL_MULTI_PERFORM (int) 从cURL 7.20.0版本开始,此常量不再使用。在cURL 7.20.0之前,当curl_multi_select()或类似函数在返回任何其他常量之前被调用时,curl_multi_exec()可能会返回此状态。从cURL 7.9.6版本开始可用。
CURLM_INTERNAL_ERROR (int) 内部libcurl错误。从cURL 7.9.6版本开始可用。
CURLM_OK (int) 无错误。从cURL 7.9.6版本开始可用。
CURLM_OUT_OF_MEMORY (int) 处理多句柄时内存不足。从cURL 7.9.6版本开始可用。
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版本开始可用。
添加备注

用户贡献的备注 4条备注

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"
);
?>
[email protected]
15年前
注意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中缺失。
[email protected]
9年前
关于CURLE_OPERATION_TIMEDOUT vs. CURLE_OPERATION_TIMEOUTED

最初cURL的常量名为TIMEOUTED(读作:“timeout-ed”)。这在2007年和7.17.0版本中被更改[1]为TIMEDOUT(读作:“timed out”),旧常量作为别名保留。

PHP最初也使用TIMEOUTED。TIMEDOUT常量在2012年和5.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);
?>

一旦你停止支持它们,就可以删除。

https://github.com/bagder/curl/commit/9f44a95522162c0f4a61093efe1bf1f58b087358#diff-d8c6cb80505e0f7d5e27fca2a682aa34L119
https://github.com/php/php-src/commit/9ab45d3edbafa3ee751472c3f8d1fb3f51f38cf1#diff-ac978e3de205f1d14eb960e0eb15ef24R723
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
To Top