常量 |
描述 |
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_H1 、CURLALTSVC_H2 、CURLALTSVC_H3 和 CURLALTSVC_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 版本起可用
|
CURLOPT_COOKIE (int) |
要在 HTTP 请求中使用的 "Cookie: " 标头的内容。请注意,多个 cookie 使用分号和空格分隔(例如,"fruit=apple; colour=red ")。
|
CURLOPT_COOKIEFILE (int) |
包含 cookie 数据的文件的名称。cookie 文件可以是 Netscape 格式,也可以是简单地将 HTTP 样式标头转储到文件。如果名称为空字符串,则不会加载任何 cookie,但仍会启用 cookie 处理。
|
CURLOPT_COOKIEJAR (int) |
用于在句柄的析构函数被调用时将所有内部 cookie 保存到其中的文件的名称。
|
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_DEFAULT 、CURLFTPMETHOD_MULTICWD 、CURLFTPMETHOD_NOCWD 和 CURLFTPMETHOD_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 开始可用。
|
设置为 true 以将标头包含在输出中。
|
一个接受两个参数的回调函数。第一个是 cURL 资源,第二个是包含要写入的标头数据的字符串。标头数据必须由此回调函数写入。返回写入的字节数。
|
可能的值是 CURLHEADER_UNIFIED 或 CURLHEADER_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_BASIC 、CURLAUTH_DIGEST 、CURLAUTH_GSSNEGOTIATE 、CURLAUTH_NTLM 、CURLAUTH_AWS_SIGV4 、CURLAUTH_ANY 和 CURLAUTH_ANYSAFE 。可以使用按位 | (或)运算符组合多个方法。如果这样做,cURL 将轮询服务器以查看它支持哪些方法,并选择最佳方法。CURLAUTH_ANY 设置所有位。cURL 将自动选择它认为最安全的方法。CURLAUTH_ANYSAFE 设置除 CURLAUTH_BASIC 之外的所有位。cURL 将自动选择它认为最安全的方法。
|
CURLOPT_HTTPGET (int) |
设置为 true 以将 HTTP 请求方法重置为 GET。由于 GET 是默认方法,因此只有在更改请求方法时才需要这样做。
|
要设置的 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_2 (CURL_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_WHATEVER 、CURL_IPRESOLVE_V4 、CURL_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_SSLKEY 或 CURLOPT_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¶2=val2&... )传递,也可以作为数组传递,其中字段名称作为键,字段数据作为值。如果 value 是数组,则 Content-Type 标头将设置为 multipart/form-data 。可以使用 CURLFile 或 CURLStringFile 发送文件,在这种情况下,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_HTTP 、CURLPROTO_HTTPS 、CURLPROTO_FTP 、CURLPROTO_FTPS 、CURLPROTO_SCP 、CURLPROTO_SFTP 、CURLPROTO_TELNET 、CURLPROTO_LDAP 、CURLPROTO_LDAPS 、CURLPROTO_DICT 、CURLPROTO_FILE 、CURLPROTO_TFTP 、CURLPROTO_MQTT 、CURLPROTO_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_BASIC 和 CURLAUTH_NTLM 。从 cURL 7.10.7 开始可用。
|
要传递给代理的自定义 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_DEFAULT 、CURL_SSLVERSION_TLSv1 、CURL_SSLVERSION_TLSv1_0 、CURL_SSLVERSION_TLSv1_1 、CURL_SSLVERSION_TLSv1_2 、CURL_SSLVERSION_TLSv1_3 、CURL_SSLVERSION_MAX_DEFAULT 、CURL_SSLVERSION_MAX_TLSv1_0 、CURL_SSLVERSION_MAX_TLSv1_1 、CURL_SSLVERSION_MAX_TLSv1_2 、CURL_SSLVERSION_MAX_TLSv1_3 、CURL_SSLVERSION_SSLv3 。 从 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_BEAST 、CURLSSLOPT_NO_REVOKE 、CURLSSLOPT_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 开始,1 和 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 密码套件。在使用 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_USERNAME 和 CURLOPT_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_INFILE 和 CURLOPT_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_BASIC 、CURLAUTH_GSSAPI 、CURLAUTH_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_PUBLICKEY 、CURLSSH_AUTH_PASSWORD 、CURLSSH_AUTH_HOST 、CURLSSH_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_0 、CURL_SSLVERSION_MAX_TLSv1_1 、CURL_SSLVERSION_MAX_TLSv1_2 、CURL_SSLVERSION_MAX_TLSv1_3 .
|
CURLOPT_SSL_CIPHER_LIST (int) |
用于 SSL 的密码列表。例如,RC4-SHA 和 TLSv1 是有效的密码列表。
|
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 开始可用
|
true 在使用 CURLOPT_HTTPPROXYTUNNEL 并且执行 CONNECT 请求时,从用户回调函数 CURLOPT_HEADERFUNCTION 和 CURLOPT_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_KEEPIDLE 和 CURLOPT_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_HEADER 为 true 。使用 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_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 开始可用。
|