CURLOPT_ABSTRACT_UNIX_SOCKET |
启用使用抽象 Unix 域套接字而不是建立到主机的 TCP 连接,并将路径设置为给定的 string。此选项与 CURLOPT_UNIX_SOCKET_PATH 具有相同的语义。这两个选项共享相同的存储空间,因此每个句柄只能设置其中一个。 |
自 PHP 7.3.0 和 cURL 7.53.0 起可用 |
CURLOPT_ALTSVC |
传递 cURL 用作 Alt-Svc 缓存文件的文件名,以便从缓存文件读取现有缓存内容,并在传输后可能写回缓存文件,除非 CURLALTSVC_READONLYFILE 通过 CURLOPT_ALTSVC_CTRL 设置。 |
|
CURLOPT_ALTSVC_CTRL |
使用此句柄进行传输时,使用正确的功能集填充位掩码,以指示 cURL 如何处理 Alt-Svc。cURL 仅接受 HTTPS 上的 Alt-Svc 头。它还将仅完成对备用原点的请求,前提是该原点在 HTTPS 上正确托管。设置任何位将启用 alt-svc 引擎。选项包括:CURLALTSVC_H1 、CURLALTSVC_H2 、CURLALTSVC_H3 和 CURLALTSVC_READONLYFILE 。 |
|
CURLOPT_AWS_SIGV4 |
在 HTTP(S) 头上提供 AWS V4 签名身份验证。
此选项将覆盖在 CURLOPT_HTTPAUTH 中设置的任何其他身份验证类型。此方法不能与其他身份验证类型结合使用。
|
|
CURLOPT_CAINFO |
包含一个或多个证书的文件名,用于验证对等方。这只有在与 CURLOPT_SSL_VERIFYPEER 结合使用时才有意义。 |
可能需要绝对路径。 |
CURLOPT_CAINFO_BLOB |
包含一个或多个证书的 PEM 文件的名称,用于验证对等方。此选项将覆盖 CURLOPT_CAINFO 。 |
自 PHP 8.2.0 和 cURL 7.77.0 起可用 |
CURLOPT_CAPATH |
包含多个 CA 证书的目录。将此选项与 CURLOPT_SSL_VERIFYPEER 结合使用。 |
|
CURLOPT_COOKIE |
将在 HTTP 请求中使用的 "Cookie: " 头的内容。请注意,多个 cookie 用分号和空格隔开(例如,“fruit=apple; colour=red ”)。 |
|
CURLOPT_COOKIEFILE |
包含 cookie 数据的文件名。cookie 文件可以是 Netscape 格式,也可以是简单地将 HTTP 样式的头转储到文件中。如果名称为空字符串,则不会加载任何 cookie,但 cookie 处理仍然启用。 |
|
CURLOPT_COOKIEJAR |
要将所有内部 cookie 保存到的文件名,当句柄的析构函数被调用时。
|
|
CURLOPT_COOKIELIST |
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_CUSTOMREQUEST |
在进行 HTTP 请求时,使用的一个自定义请求方法,而不是 "GET" 或 "HEAD" 。这对于进行 "DELETE" 或其他更模糊的 HTTP 请求很有用。有效值为 "GET" 、"POST" 、"CONNECT" 等;即不要在此处输入完整的 HTTP 请求行。例如,输入 "GET /index.html HTTP/1.0\r\n\r\n" 将是不正确的。 注意:
在确保服务器支持自定义请求方法之前,不要这样做。
|
|
CURLOPT_DEFAULT_PROTOCOL |
如果 URL 缺少方案名称,则要使用的默认协议。 |
在 cURL 7.45.0 中添加。自 PHP 7.0.7 起可用。 |
CURLOPT_DNS_INTERFACE |
设置 DNS 解析器应绑定到的网络接口的名称。这必须是接口名称(而不是地址)。 |
在 cURL 7.33.0 中添加。自 PHP 7.0.7 起可用。 |
CURLOPT_DNS_LOCAL_IP4 |
设置解析器应绑定到的本地 IPv4 地址。参数应包含一个作为字符串的单个数字 IPv4 地址。 |
在 cURL 7.33.0 中添加。自 PHP 7.0.7 起可用。 |
CURLOPT_DNS_LOCAL_IP6 |
设置解析器应绑定到的本地 IPv6 地址。参数应包含一个作为字符串的单个数字 IPv6 地址。 |
在 cURL 7.33.0 中添加。自 PHP 7.0.7 起可用。 |
CURLOPT_EGDSOCKET |
与 CURLOPT_RANDOM_FILE 相似,但它是一个指向熵收集守护进程套接字的文件名。 |
|
CURLOPT_ENCODING |
"Accept-Encoding: " 头的内容。这将启用对响应的解码。支持的编码包括 "identity" 、"deflate" 和 "gzip" 。如果设置为空字符串 "" ,则会发送包含所有支持编码类型的头。 |
在 cURL 7.10 中添加。 |
CURLOPT_FTPPORT |
将用于获取用于 FTP “PORT” 指令的 IP 地址的值。“PORT” 指令告诉远程服务器连接到我们指定的 IP 地址。该字符串可以是普通 IP 地址、主机名、网络接口名称(在 Unix 下)或仅一个简单的 ‘-’ 以使用系统的默认 IP 地址。 |
|
CURLOPT_HSTS |
HSTS(HTTP 严格传输安全)缓存文件名。
|
|
CURLOPT_HSTS_CTRL |
控制 HSTS(HTTP 严格传输安全)行为。使用正确的功能集填充位掩码,以指示 cURL 如何处理使用此句柄进行传输的 HSTS。CURLHSTS_ENABLE 启用内存中的 HSTS 缓存。如果定义了 HSTS 缓存文件,请设置 CURLHSTS_READONLYFILE 以使文件只读。
|
|
CURLOPT_INTERFACE |
要使用的出站网络接口的名称。这可以是接口名称、IP 地址或主机名。 |
|
CURLOPT_KEYPASSWD |
使用 CURLOPT_SSLKEY 或 CURLOPT_SSH_PRIVATE_KEYFILE 私钥所需的密码。 |
在 cURL 7.16.1 中添加。 |
CURLOPT_KRB4LEVEL |
KRB4(Kerberos 4)安全级别。以下任何值(从最低到最高)都是有效的:"clear" 、"safe" 、"confidential" 、"private" 。如果字符串与这些值都不匹配,则使用 "private" 。将此选项设置为 null 将禁用 KRB4 安全性。目前,KRB4 安全性仅适用于 FTP 事务。 |
|
CURLOPT_LOGIN_OPTIONS |
可用于设置协议特定的登录选项,例如通过 “AUTH=NTLM” 或 “AUTH=*” 的首选身份验证机制,应与 CURLOPT_USERNAME 选项一起使用。 |
在 cURL 7.34.0 中添加。从 PHP 7.0.7 开始可用。 |
CURLOPT_PINNEDPUBLICKEY |
设置固定公钥。字符串可以是固定公钥的文件名。预期文件格式为 “PEM” 或 “DER”。字符串也可以是任何数量的以 “sha256//” 开头并以 “;” 分隔的 Base64 编码的 sha256 哈希值。 |
在 cURL 7.39.0 中添加。从 PHP 7.0.7 开始可用。 |
CURLOPT_POSTFIELDS |
在 HTTP “POST” 操作中要发布的完整数据。此参数可以作为 URL 编码字符串传递,例如 'para1=val1¶2=val2&... ',也可以作为数组传递,其中字段名称作为键,字段数据作为值。如果 value 是数组,则 Content-Type 标头将设置为 multipart/form-data 。 可以使用 CURLFile 或 CURLStringFile 发送文件,在这种情况下,value 必须是数组。 |
|
CURLOPT_PRIVATE |
与此 cURL 句柄关联的任何数据。此数据随后可以使用 curl_getinfo() 的 CURLINFO_PRIVATE 选项检索。cURL 对此数据不做任何处理。当使用 cURL 多句柄时,此私有数据通常是一个唯一键,用于标识标准 cURL 句柄。 |
在 cURL 7.10.3 中添加。 |
CURLOPT_PRE_PROXY |
设置一个 字符串,其中包含用作预代理的主机名或点分十进制 IP 地址,curl 在连接到 CURLOPT_PROXY 选项中指定的 HTTP(S) 代理之前连接到该预代理,以进行即将到来的请求。预代理只能是 SOCKS 代理,它应该以 [scheme]:// 为前缀以指定使用哪种 socks。IPv6 数值地址必须写在方括号中。将预代理设置为空字符串会显式禁用预代理的使用。要在该字符串中指定端口号,请将 :[port] 附加到主机名的末尾。代理的端口号可以选择使用单独的选项 CURLOPT_PROXYPORT 指定。如果未指定端口,则默认为使用端口 1080 进行代理。 |
从 PHP 7.3.0 和 libcurl >= cURL 7.52.0 开始可用。 |
CURLOPT_PROXY |
用于通过隧道请求的 HTTP 代理。 |
|
CURLOPT_PROXY_SERVICE_NAME |
代理身份验证服务名称。 |
在 cURL 7.43.0 中添加用于 HTTP 代理,在 cURL 7.49.0 中添加用于 SOCKS5 代理。从 PHP 7.0.7 开始可用。 |
CURLOPT_PROXY_CAINFO |
代理证书颁发机构 (CA) 捆绑包的路径。将路径设置为 字符串,该字符串命名包含一个或多个证书的文件,以验证 HTTPS 代理。此选项用于连接到 HTTPS 代理,而不是 HTTPS 服务器。默认设置为 libcurl 的 cacert 捆绑包假定存储在系统路径。 |
从 PHP 7.3.0 和 libcurl >= cURL 7.52.0 开始可用。 |
CURLOPT_PROXY_CAINFO_BLOB |
包含一个或多个证书的 PEM 文件的名称,用于验证 HTTPS 代理。此选项用于连接到 HTTPS 代理,而不是 HTTPS 服务器。默认设置为 libcurl 的 cacert 捆绑包假定存储在系统路径。 |
从 PHP 8.2.0 和 libcurl >= cURL 7.77.0 开始可用。 |
CURLOPT_PROXY_CAPATH |
包含多个 CA 证书的目录,用于验证 HTTPS 代理。 |
从 PHP 7.3.0 和 libcurl >= cURL 7.52.0 开始可用。 |
CURLOPT_PROXY_CRLFILE |
设置使用 PEM 格式的 CRL(证书吊销列表)的连接的名称,该列表用于在 SSL 交换期间发生的证书验证中使用。 |
从 PHP 7.3.0 和 libcurl >= cURL 7.52.0 开始可用。 |
CURLOPT_PROXY_KEYPASSWD |
设置字符串,用作使用 CURLOPT_PROXY_SSLKEY 私钥所需的密码。您以前不需要密码来加载证书,但需要密码来加载私钥。此选项用于连接到 HTTPS 代理,而不是 HTTPS 服务器。 |
从 PHP 7.3.0 和 libcurl >= cURL 7.52.0 开始可用。 |
CURLOPT_PROXY_PINNEDPUBLICKEY |
设置 HTTPS 代理的固定公钥。字符串可以是固定公钥的文件名。预期文件格式为 “PEM” 或 “DER”。字符串也可以是任何数量的以 “sha256//” 开头并以 “;” 分隔的 Base64 编码的 sha256 哈希值。 |
从 PHP 7.3.0 和 libcurl >= cURL 7.52.0 开始可用。 |
CURLOPT_PROXY_SSLCERT |
用于连接到 HTTPS 代理的客户端证书的文件名。默认格式在 Secure Transport 上为 “P12”,在其他引擎上为 “PEM”,可以使用 CURLOPT_PROXY_SSLCERTTYPE 更改。使用 NSS 或 Secure Transport 时,这也可以是您希望用于身份验证的证书的昵称,如安全数据库中所命名。如果要使用当前目录中的文件,请在前面加上 “./” 前缀,以避免与昵称混淆。 |
从 PHP 7.3.0 和 libcurl >= cURL 7.52.0 开始可用。 |
CURLOPT_PROXY_SSLCERTTYPE |
连接到 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 和 libcurl >= cURL 7.52.0 开始可用。 |
CURLOPT_PROXY_SSL_CIPHER_LIST |
用于连接到 HTTPS 代理的密码列表。该列表必须语法正确,它包含一个或多个以冒号分隔的密码字符串。逗号或空格也可以用作分隔符,但通常使用冒号,!、- 和 + 可用作运算符。 |
从 PHP 7.3.0 和 libcurl >= cURL 7.52.0 开始可用。 |
CURLOPT_PROXY_TLS13_CIPHERS |
用于与代理建立 TLS 1.3 连接的密码套件列表。该列表必须语法正确,它包含一个或多个以冒号分隔的密码套件字符串。此选项目前仅在构建 curl 以使用 OpenSSL 1.1.1 或更高版本时使用。如果您使用的是其他 SSL 后端,可以尝试使用 CURLOPT_PROXY_SSL_CIPHER_LIST 选项设置 TLS 1.3 密码套件。 |
从 PHP 7.3.0 和 libcurl >= cURL 7.61.0 开始可用。在使用 OpenSSL >= 1.1.1 构建时可用。 |
CURLOPT_PROXY_SSLKEY |
用于连接到 HTTPS 代理的私钥的文件名。默认格式为 “PEM”,可以使用 CURLOPT_PROXY_SSLKEYTYPE 更改。(仅限 iOS 和 Mac OS X)如果 curl 是针对 Secure Transport 构建的,则忽略此选项。 |
从 PHP 7.3.0 和 libcurl >= cURL 7.52.0 开始可用。如果构建了 TLS,则可用。 |
CURLOPT_PROXY_SSLKEYTYPE |
私钥的格式。支持的格式为 “PEM”、“DER” 和 “ENG”。 |
从 PHP 7.3.0 和 libcurl >= cURL 7.52.0 开始可用。 |
CURLOPT_PROXY_TLSAUTH_PASSWORD |
用于使用 CURLOPT_PROXY_TLSAUTH_TYPE 选项指定的 TLS 身份验证方法的密码。要求还设置 CURLOPT_PROXY_TLSAUTH_USERNAME 选项。 |
从 PHP 7.3.0 和 libcurl >= cURL 7.52.0 开始可用。 |
CURLOPT_PROXY_TLSAUTH_TYPE |
用于 HTTPS 连接的 TLS 身份验证方法。支持的方法是 "SRP" 。
注意:
TLS 的安全远程密码 (SRP) 身份验证如果双方共享秘密,则提供相互身份验证。要使用 TLS-SRP,您还必须设置 CURLOPT_PROXY_TLSAUTH_USERNAME 和 CURLOPT_PROXY_TLSAUTH_PASSWORD 选项。
|
从 PHP 7.3.0 和 libcurl >= cURL 7.52.0 开始可用。 |
CURLOPT_PROXY_TLSAUTH_USERNAME |
用于使用 CURLOPT_PROXY_TLSAUTH_TYPE 选项指定的 HTTPS 代理 TLS 身份验证方法的用户名。要求还设置 CURLOPT_PROXY_TLSAUTH_PASSWORD 选项。 |
从 PHP 7.3.0 和 libcurl >= cURL 7.52.0 开始可用。 |
CURLOPT_PROXYUSERPWD |
格式为 "[username]:[password]" 的用户名和密码,用于连接到代理。 |
|
CURLOPT_RANDOM_FILE |
用于为 SSL 种子随机数生成器的文件名。 |
|
CURLOPT_RANGE |
要检索的数据范围,格式为 "X-Y" ,其中 X 或 Y 可选。HTTP 传输还支持多个间隔,以逗号分隔,格式为 "X-Y,N-M" 。 |
|
CURLOPT_REFERER |
要在 HTTP 请求中使用的 "Referer: " 标头的内容。 |
|
CURLOPT_SASL_AUTHZID |
传输的授权标识 (authzid)。仅适用于 PLAIN SASL 身份验证机制,其中它是可选的。如果未指定,则仅会将由用户名指定的身份验证标识 (authcid) 以及密码发送到服务器。服务器将在未提供时从 authcid 推导出 authzid,然后在内部使用它。 |
|
CURLOPT_SERVICE_NAME |
身份验证服务名称。 |
在 cURL 7.43.0 中添加。从 PHP 7.0.7 开始可用。 |
CURLOPT_SSH_HOST_PUBLIC_KEY_MD5 |
包含 32 个十六进制数字的字符串。该字符串应该是远程主机公钥的 MD5 校验和,libcurl 将拒绝连接到主机,除非 md5sums 匹配。此选项仅适用于 SCP 和 SFTP 传输。 |
在 cURL 7.17.1 中添加。 |
CURLOPT_SSH_HOST_PUBLIC_KEY_SHA256 |
远程主机公钥的 Base64 编码 SHA256 哈希。如果给定的哈希与远程主机提供的哈希不匹配,则传输将失败。 |
|
CURLOPT_SSH_PUBLIC_KEYFILE |
公钥的文件名。如果未使用,libcurl 默认使用 $HOME/.ssh/id_dsa.pub(如果设置了 HOME 环境变量),如果未设置 HOME,则在当前目录中使用 “id_dsa.pub”。 |
在 cURL 7.16.1 中添加。 |
CURLOPT_SSH_PRIVATE_KEYFILE |
私钥的文件名。如果未使用,libcurl 默认使用 $HOME/.ssh/id_dsa(如果设置了 HOME 环境变量),如果未设置 HOME,则在当前目录中使用 “id_dsa”。如果该文件受密码保护,请使用 CURLOPT_KEYPASSWD 设置密码。 |
在 cURL 7.16.1 中添加。 |
CURLOPT_SSL_CIPHER_LIST |
用于 SSL 的密码列表。例如,RC4-SHA 和 TLSv1 是有效的密码列表。 |
|
CURLOPT_SSL_EC_CURVES |
以冒号分隔的椭圆曲线算法列表。例如,X25519:P-521 是两个椭圆曲线的有效列表。此选项定义了 SSL 握手中的客户端密钥交换算法,如果构建的 SSL 后端 cURL 支持它。 |
|
CURLOPT_SSLCERT |
包含 PEM 格式证书的文件名。 |
|
CURLOPT_SSLCERTPASSWD |
使用 CURLOPT_SSLCERT 证书所需的密码。 |
|
CURLOPT_SSLCERTTYPE |
证书的格式。支持的格式为 "PEM" (默认)、"DER" 和 "ENG" 。从 OpenSSL 0.9.3 开始,还支持 "P12" (用于 PKCS#12 编码的文件)。 |
在 cURL 7.9.3 中添加。 |
CURLOPT_SSLENGINE |
在 CURLOPT_SSLKEY 中指定的私有 SSL 密钥的加密引擎的标识符。 |
|
CURLOPT_SSLENGINE_DEFAULT |
用于非对称加密操作的加密引擎的标识符。 |
|
CURLOPT_SSLKEY |
包含私有 SSL 密钥的文件名。 |
|
CURLOPT_SSLKEYPASSWD |
使用在 CURLOPT_SSLKEY 中指定的私有 SSL 密钥所需的秘密密码。 注意:
由于此选项包含敏感密码,请记住将包含它的 PHP 脚本保存在安全的地方。
|
|
CURLOPT_SSLKEYTYPE |
在 **CURLOPT_SSLKEY ** 中指定的私有 SSL 密钥的密钥类型。支持的密钥类型有 "PEM" (默认)、"DER" 和 "ENG" 。 |
|
CURLOPT_TLS13_CIPHERS |
用于 TLS 1.3 连接的密码套件列表。列表必须语法正确,它包含一个或多个由冒号分隔的密码套件字符串。此选项目前仅在 curl 构建为使用 OpenSSL 1.1.1 或更高版本时使用。如果您使用的是其他 SSL 后端,您可以尝试使用 **CURLOPT_SSL_CIPHER_LIST ** 选项设置 TLS 1.3 密码套件。 |
从 PHP 7.3.0 和 libcurl >= cURL 7.61.0 开始可用。在使用 OpenSSL >= 1.1.1 构建时可用。 |
CURLOPT_UNIX_SOCKET_PATH |
启用使用 Unix 域套接字作为连接端点,并设置给定 字符串 的路径。 |
在 cURL 7.40.0 中添加。从 PHP 7.0.7 开始可用。 |
CURLOPT_URL |
要获取的 URL。这也可以在使用 curl_init() 初始化会话时设置。 |
|
CURLOPT_USERAGENT |
要在 HTTP 请求中使用的 "User-Agent: " 标头的内容。 |
|
CURLOPT_USERNAME |
用于身份验证的用户名。 |
在 cURL 7.19.1 中添加。 |
CURLOPT_PASSWORD |
用于身份验证的密码。 |
在 cURL 7.19.1 中添加。 |
CURLOPT_USERPWD |
以 "[用户名]:[密码]" 格式的用户名和密码,用于连接。 |
|
CURLOPT_XOAUTH2_BEARER |
指定 OAuth 2.0 访问令牌。 |
在 cURL 7.33.0 中添加。自 PHP 7.0.7 起可用。 |