curl_setopt

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

curl_setopt — 设置 cURL 传输选项

说明

curl_setopt(CurlHandle $handle, int $option, mixed $value): bool

为 cURL 会话句柄设置选项。

参数

handle

由 curl_init() 返回的 cURL 句柄。

option

需要设置的 CURLOPT_* 选项。

value

将设置在 option 选项上的值。有关每个常量期望的值类型的详情,请参阅 CURLOPT_* 常量的描述。

返回值

成功时返回 true, 或者在失败时返回 false。

更新日志

版本 说明
8.4.0 CURLOPT_DNS_USE_GLOBAL_CACHE 不再有任何效果,并且在线程安全 PHP 上启用不再触发警告。
8.0.0 handle 现在接受 CurlHandle 实例;之前接受 resource。
7.3.15、7.4.3 引入 CURLOPT_HTTP09_ALLOWED。
7.3.0 引入 CURLOPT_ABSTRACT_UNIX_SOCKET、CURLOPT_KEEP_SENDING_ON_ERROR、CURLOPT_PRE_PROXY、CURLOPT_PROXY_CAINFO、CURLOPT_PROXY_CAPATH、CURLOPT_PROXY_CRLFILE、CURLOPT_PROXY_KEYPASSWD、CURLOPT_PROXY_PINNEDPUBLICKEY、CURLOPT_PROXY_SSLCERT、CURLOPT_PROXY_SSLCERTTYPE、CURLOPT_PROXY_SSL_CIPHER_LIST、CURLOPT_PROXY_SSLKEY、CURLOPT_PROXY_SSLKEYTYPE、CURLOPT_PROXY_SSL_OPTIONS、CURLOPT_PROXY_SSL_VERIFYHOST、CURLOPT_PROXY_SSL_VERIFYPEER、CURLOPT_PROXY_SSLVERSION、CURLOPT_PROXY_TLSAUTH_PASSWORD、CURLOPT_PROXY_TLSAUTH_TYPE、CURLOPT_PROXY_TLSAUTH_USERNAME、CURLOPT_SOCKS5_AUTH、CURLOPT_SUPPRESS_CONNECT_HEADERS、CURLOPT_DISALLOW_USERNAME_IN_URL、CURLOPT_DNS_SHUFFLE_ADDRESSES、CURLOPT_HAPPY_EYEBALLS_TIMEOUT_MS、CURLOPT_HAPROXYPROTOCOL、CURLOPT_PROXY_TLS13_CIPHERS、CURLOPT_SSH_COMPRESSION、CURLOPT_TIMEVALUE_LARGE 和 CURLOPT_TLS13_CIPHERS。
7.0.7 引入 CURL_HTTP_VERSION_2、CURL_HTTP_VERSION_2_PRIOR_KNOWLEDGE、 CURL_HTTP_VERSION_2TLS、CURL_REDIR_POST_301、 CURL_REDIR_POST_302、CURL_REDIR_POST_303、 CURL_REDIR_POST_ALL、CURL_VERSION_KERBEROS5、 CURL_VERSION_PSL、CURL_VERSION_UNIX_SOCKETS、 CURLAUTH_NEGOTIATE、CURLAUTH_NTLM_WB、 CURLFTP_CREATE_DIR、CURLFTP_CREATE_DIR_NONE、 CURLFTP_CREATE_DIR_RETRY、CURLHEADER_SEPARATE、 CURLHEADER_UNIFIED、CURLMOPT_CHUNK_LENGTH_PENALTY_SIZE、 CURLMOPT_CONTENT_LENGTH_PENALTY_SIZE、CURLMOPT_MAX_HOST_CONNECTIONS、 CURLMOPT_MAX_PIPELINE_LENGTH、CURLMOPT_MAX_TOTAL_CONNECTIONS、 CURLOPT_CONNECT_TO、CURLOPT_DEFAULT_PROTOCOL、 CURLOPT_DNS_INTERFACE、CURLOPT_DNS_LOCAL_IP4、 CURLOPT_DNS_LOCAL_IP6、CURLOPT_EXPECT_100_TIMEOUT_MS、 CURLOPT_HEADEROPT、CURLOPT_LOGIN_OPTIONS、 CURLOPT_PATH_AS_IS、CURLOPT_PINNEDPUBLICKEY、 CURLOPT_PIPEWAIT、CURLOPT_PROXY_SERVICE_NAME、 CURLOPT_PROXYHEADER、CURLOPT_SASL_IR、 CURLOPT_SERVICE_NAME、CURLOPT_SSL_ENABLE_ALPN、 CURLOPT_SSL_ENABLE_NPN、CURLOPT_SSL_FALSESTART、 CURLOPT_SSL_VERIFYSTATUS、CURLOPT_STREAM_WEIGHT、 CURLOPT_TCP_FASTOPEN、CURLOPT_TFTP_NO_OPTIONS、 CURLOPT_UNIX_SOCKET_PATH、CURLOPT_XOAUTH2_BEARER、 CURLPROTO_SMB、CURLPROTO_SMBS、 CURLPROXY_HTTP_1_0、CURLSSH_AUTH_AGENT 和 CURLSSLOPT_NO_REVOKE。

示例

示例 #1 初始化一个新的cURL会话并获取一个网页

<?php
// 创建一个新cURL资源
$ch = curl_init();

// 设置URL和相应的选项
curl_setopt($ch, CURLOPT_URL, "http://www.example.com/");
curl_setopt($ch, CURLOPT_HEADER, false);

// 抓取URL并把它传递给浏览器
curl_exec($ch);
?>

注释

注意:

传递一个数组到CURLOPT_POSTFIELDS,cURL会把数据编码成 multipart/form-data,而然传递一个URL-encoded字符串时,数据会被编码成 application/x-www-form-urlencoded。

参见