PHP Conference Japan 2024

預定義常數

以下常數由此擴充套件定義,並且只有在擴充套件已編譯到 PHP 中或在執行時動態載入時才可用。

這些常數的描述和用法在 curl_setopt()curl_multi_setopt()curl_getinfo() 文件中說明。

常數 說明
CURLALTSVC_H1 (整數) 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)) 這是一個元符號。將此值與單個特定的驗證值進行 OR 運算,以強制 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整數 PHP 8.2.0 和 cURL 7.73.0 起可用
CURLPX_LONG_PASSWD整數 PHP 8.2.0 和 cURL 7.73.0 起可用
CURLPX_LONG_USER整數 PHP 8.2.0 和 cURL 7.73.0 起可用
CURLPX_NO_AUTH整數 PHP 8.2.0 和 cURL 7.73.0 起可用
CURLPX_OK整數 PHP 8.2.0 和 cURL 7.73.0 起可用
CURLPX_RECV_ADDRESS整數 PHP 8.2.0 和 cURL 7.73.0 起可用
CURLPX_RECV_AUTH整數 PHP 8.2.0 和 cURL 7.73.0 起可用
CURLPX_RECV_CONNECT整數 PHP 8.2.0 和 cURL 7.73.0 起可用
CURLPX_RECV_REQACK整數 PHP 8.2.0 和 cURL 7.73.0 起可用
CURLPX_REPLY_ADDRESS_TYPE_NOT_SUPPORTED整數 PHP 8.2.0 和 cURL 7.73.0 起可用
CURLPX_REPLY_COMMAND_NOT_SUPPORTED整數 PHP 8.2.0 和 cURL 7.73.0 起可用
CURLPX_REPLY_CONNECTION_REFUSED整數 PHP 8.2.0 和 cURL 7.73.0 起可用
CURLPX_REPLY_GENERAL_SERVER_FAILURE整數 PHP 8.2.0 和 cURL 7.73.0 起可用
CURLPX_REPLY_HOST_UNREACHABLE整數 PHP 8.2.0 和 cURL 7.73.0 起可用
CURLPX_REPLY_NETWORK_UNREACHABLE整數 PHP 8.2.0 和 cURL 7.73.0 起可用
CURLPX_REPLY_NOT_ALLOWED整數 PHP 8.2.0 和 cURL 7.73.0 起可用
CURLPX_REPLY_TTL_EXPIRED整數 PHP 8.2.0 和 cURL 7.73.0 起可用
CURLPX_REPLY_UNASSIGNED整數 PHP 8.2.0 和 cURL 7.73.0 起可用
CURLPX_REQUEST_FAILED整數 PHP 8.2.0 和 cURL 7.73.0 起可用
CURLPX_RESOLVE_HOST整數 PHP 8.2.0 和 cURL 7.73.0 起可用
CURLPX_SEND_AUTH整數 PHP 8.2.0 和 cURL 7.73.0 起可用
CURLPX_SEND_CONNECT整數 PHP 8.2.0 和 cURL 7.73.0 起可用
CURLPX_SEND_REQUEST整數 PHP 8.2.0 和 cURL 7.73.0 起可用
CURLPX_UNKNOWN_FAIL整數 PHP 8.2.0 和 cURL 7.73.0 起可用
CURLPX_UNKNOWN_MODE整數 PHP 8.2.0 和 cURL 7.73.0 起可用
CURLPX_USER_REJECTED整數 PHP 8.2.0 和 cURL 7.73.0 起可用
CURLSSH_AUTH_AGENT整數 PHP 7.0.7 和 cURL 7.28.0 後可用
CURLSSH_AUTH_ANY整數
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 (整數) 當由客戶端發送時,此方法會更改工作階段的描述。如同 CURL_RTSPREQ_SET_PARAMETERANNOUNCE 的作用類似於 HTTP PUT 或 POST。從 cURL 7.20.0 開始提供。
CURL_RTSPREQ_DESCRIBE (整數) 用於取得串流的低階描述。應用程式應在 Accept: 標頭中註明其理解的格式。除非手動設定,否則 libcurl 會自動加入 Accept: application/sdp。如果使用了 CURLOPT_TIMECONDITION 選項,則會將時間條件標頭添加到 DESCRIBE 請求中。從 cURL 7.20.0 開始提供。
CURL_RTSPREQ_GET_PARAMETER (整數) 從伺服器擷取參數。預設情況下,libcurl 會在所有非空請求上添加 Content-Type: text/parameters 標頭,除非設定了自定義標頭。GET_PARAMETER 的作用類似於 HTTP PUT 或 POST。希望發送心跳訊息的應用程式應使用空的 GET_PARAMETER 請求。從 cURL 7.20.0 開始提供。
CURL_RTSPREQ_OPTIONS (整數) 用於擷取伺服器的可用方法。從 cURL 7.20.0 開始提供。
CURL_RTSPREQ_PAUSE (整數) 向伺服器發送 PAUSE 命令。使用帶有單一值的 CURLOPT_RANGE 選項來指示應在何時停止串流(例如 npt=25)。從 cURL 7.20.0 開始提供。
CURL_RTSPREQ_PLAY (整數) 向伺服器發送 PLAY 命令。使用 CURLOPT_RANGE 選項來修改播放時間(例如 npt=10-15)。從 cURL 7.20.0 開始提供。
CURL_RTSPREQ_RECEIVE (整數) 將 RTSP 請求類型設定為此值以接收交錯的 RTP 資料。從 cURL 7.20.0 開始提供。
CURL_RTSPREQ_RECORD (整數) 用於告知伺服器記錄工作階段。使用 CURLOPT_RANGE 選項來修改錄製時間。從 cURL 7.20.0 開始提供。
CURL_RTSPREQ_SETUP (整數) 用於初始化工作階段的傳輸層。從 cURL 7.20.0 開始提供。
CURL_RTSPREQ_SET_PARAMETER (整數) 在伺服器上設定參數。從 cURL 7.20.0 開始提供。
CURL_RTSPREQ_TEARDOWN (整數) 終止 RTSP 工作階段。僅關閉連線並不會終止 RTSP 工作階段,因為透過不同連線控制 RTSP 工作階段是有效的。從 cURL 7.20.0 開始提供。
CURL_SSLVERSION_DEFAULT (整數)
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)) 支援國際化域名 (IDN)。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 helper。自 PHP 7.3.0 和 cURL 7.22.0 起可用。
CURL_VERSION_PSL (整數) Mozilla 的公開後綴清單,用於 Cookie 網域驗證。自 PHP 7.3.6 和 cURL 7.47.0 起可用。
CURL_VERSION_SPNEGO (整數) 支援 SPNEGO 驗證。自 PHP 7.3.0 和 cURL 7.10.8 起可用。
CURL_VERSION_SSL (整數) 存在 SSL 選項。
CURL_VERSION_SSPI (整數) 基於 Windows SSPI 建置。自 PHP 7.3.0 和 cURL 7.13.2 起可用。
CURL_VERSION_TLSAUTH_SRP (整數) 支援 TLS-SRP 驗證。自 PHP 7.3.0 和 cURL 7.21.4 起可用。
CURL_VERSION_UNICODE (整數) 自 PHP 8.2.0 和 cURL 7.72.0 起可用。
CURL_VERSION_UNIX_SOCKETS (整數) 支援 Unix 網域通訊端。自 PHP 7.0.7 和 cURL 7.40.0 起可用。
CURL_VERSION_ZSTD (整數) 自 PHP 8.2.0 和 cURL 7.72.0 起可用。
CURL_WRITEFUNC_PAUSE (整數) cURL 7.18.0 起可用。
CURL_PREREQFUNC_OK (整數) 自 PHP 8.4.0 和 cURL 7.80.0 起可用。
CURL_PREREQFUNC_ABORT (整數) 自 PHP 8.4.0 和 cURL 7.80.0 起可用。
curl_setopt()
常數 說明
CURLOPT_ABSTRACT_UNIX_SOCKET (整數)

啟用使用抽象 Unix 網域通訊端,而不是建立與主機的 TCP 連線,並將路徑設定為指定的字串。此選項與 CURLOPT_UNIX_SOCKET_PATH 共享相同的語義。這兩個選項共享相同的儲存空間,因此每個控制代碼只能設定其中一個。自 PHP 7.3.0 和 cURL 7.53.0 起可用。

CURLOPT_ACCEPT_ENCODING (整數)

設定一個包含在 HTTP 請求中傳送的 Accept-Encoding: 標頭內容的 字串。設定為 null 以停用傳送 Accept-Encoding: 標頭。預設為 null。自 cURL 7.21.6 起可用。

CURLOPT_ACCEPTTIMEOUT_MS (整數)

使用主動 FTP 連線時,等待伺服器連回 cURL 的最大毫秒數。此選項接受任何可以轉換為有效 整數 的值。預設為 60000 毫秒。自 cURL 7.24.0 起可用。

CURLOPT_ADDRESS_SCOPE (整數)

連線到 IPv6 位址時要使用的範圍 ID 值。此選項接受任何可以轉換為有效 整數 的值。預設為 0。自 cURL 7.19.0 起可用。

CURLOPT_ALTSVC整數

傳遞一個 字串,其中包含 cURL 用作 Alt-Svc 快取檔案的檔名,用於讀取現有的快取內容,並且可能在傳輸後寫回,除非透過 CURLOPT_ALTSVC_CTRL 設定 CURLALTSVC_READONLYFILE。從 PHP 8.2.0 和 cURL 7.64.1 開始提供。

CURLOPT_ALTSVC_CTRL整數

使用正確的功能集填充位元遮罩,以指示 cURL 如何使用此控制代碼處理傳輸的 Alt-Svc。 cURL 僅接受透過 HTTPS 的 Alt-Svc 標頭。它也只會在替代來源正確地透過 HTTPS 裝載的情況下,完成對替代來源的請求。設定任何位元將啟用 alt-svc 引擎。設定為任何 CURLALTSVC_* 常數。預設為停用 Alt-Svc 處理。從 PHP 8.2.0 和 cURL 7.64.1 開始提供。

CURLOPT_APPEND整數

將此選項設定為 1 將使 FTP 上傳附加到遠端檔案,而不是覆蓋它。預設為 0。從 cURL 7.17.0 開始提供。

CURLOPT_AUTOREFERER整數

true 表示在請求中自動設定 Referer: 欄位,其中它跟隨 Location: 重定向。預設為 0。從 cURL 7.1.0 開始提供。

CURLOPT_AWS_SIGV4整數

字串 的形式在 HTTP(S) 標頭上提供 AWS V4 簽章驗證。此選項會覆蓋在 CURLOPT_HTTPAUTH 中設定的任何其他驗證類型。此方法不能與其他驗證類型組合使用。從 PHP 8.2.0 和 cURL 7.75.0 開始提供。

CURLOPT_BINARYTRANSFER整數

從 PHP 5.5.0 開始,此常數不再使用。從 PHP 8.4.0 開始棄用。

CURLOPT_BUFFERSIZE整數

每次讀取使用的緩衝區大小。但是,不能保證此請求會被滿足。此選項接受任何可以轉換為有效 整數 的值。預設為 CURL_MAX_WRITE_SIZE(目前為 16kB)。從 cURL 7.10 開始提供。

CURLOPT_CAINFO整數

一個 字串,其中包含持有用於驗證對等方的憑證的檔案名稱。這僅在與 CURLOPT_SSL_VERIFYPEER 結合使用時才有意義。可能需要絕對路徑。從 cURL 7.4.2 開始提供。

CURLOPT_CAINFO_BLOB整數

一個包含用於驗證對等端的一個或多個證書的 PEM 檔案名稱的字串。此選項會覆寫CURLOPT_CAINFO。從 PHP 8.2.0 和 cURL 7.77.0 開始可用。

CURLOPT_CAPATH (整數)

一個包含多個 CA 證書的目錄的字串。請將此選項與CURLOPT_SSL_VERIFYPEER搭配使用。從 cURL 7.9.8 開始可用。

CURLOPT_CA_CACHE_TIMEOUT (整數)

設定任何記憶體中快取的 CA 證書儲存庫可以保留並重複用於新連線的最長時間(以秒為單位)。此選項接受任何可以轉換為有效整數的值。預設值為 86400(24 小時)。從 PHP 8.3.0 和 cURL 7.87.0 開始可用。

CURLOPT_CERTINFO (整數)

在安全傳輸時,設為true 會將 SSL 證書資訊輸出到STDERR。需要將CURLOPT_VERBOSE設為開啟才能生效。預設值為false。從 cURL 7.19.1 開始可用。

CURLOPT_CONNECTTIMEOUT (整數)

嘗試連線時等待的秒數。使用 0 表示無限期等待。此選項接受任何可以轉換為有效整數的值。預設值為 300。從 cURL 7.7.0 開始可用。

CURLOPT_CONNECTTIMEOUT_MS (整數)

嘗試連線時等待的毫秒數。使用 0 表示無限期等待。如果 cURL 建置為使用標準系統名稱解析器,則連線的該部分仍將使用整秒解析度進行逾時,允許的最小逾時為一秒。此選項接受任何可以轉換為有效整數的值。預設值為 300000。從 cURL 7.16.2 開始可用。

CURLOPT_CONNECT_ONLY (整數)

true 告知程式庫執行所有必要的代理驗證和連線設定,但不進行資料傳輸。此選項適用於 HTTP、SMTP 和 POP3。預設值為false。從 cURL 7.15.2 開始可用。

CURLOPT_CONNECT_TO (整數)

連線到指定的 host 和 port,而不是 URL 的 host 和 port。接受格式為 HOST:PORT:CONNECT-TO-HOST:CONNECT-TO-PORT陣列 字串。從 PHP 7.0.7 和 cURL 7.49.0 開始可用。

一個包含 HTTP 請求中使用的 Cookie: 標頭內容的 字串。請注意,多個 Cookie 以分號和空格分隔(例如,fruit=apple; colour=red)。從 cURL 7.1.0 開始提供。

CURLOPT_COOKIEFILE (整數)

包含 Cookie 資料的檔案名稱 字串。Cookie 檔案可以是 Netscape 格式,或只是純 HTTP 樣式的標頭傾印到檔案中。如果名稱是一個空的 字串,則不會載入任何 Cookie,但 Cookie 處理仍會啟用。從 cURL 7.1.0 開始提供。

CURLOPT_COOKIEJAR (整數)

一個 字串,其中包含在控制代碼的解構函式被呼叫時要儲存所有內部 Cookie 的檔案名稱。從 cURL 7.9.0 開始提供。

警告

從 PHP 8.0.0 開始,curl_close() 是一個無運算函式,並且*不會*銷毀控制代碼。如果需要在控制代碼被自動銷毀之前寫入 Cookie,請在控制代碼上呼叫 unset()

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_COOKIESESSION (整數)

true 將此標記為新的 Cookie「工作階段」。它將強制 cURL 忽略所有即將載入的、來自先前工作階段的「工作階段 Cookie」。預設情況下,cURL 總是儲存和載入所有 Cookie,無論它們是否是工作階段 Cookie。工作階段 Cookie 是沒有到期日期的 Cookie,它們僅 meant to be alive and existing for this "session" only. 從 cURL 7.9.7 開始提供。

CURLOPT_CRLF (整數)

true 表示在傳輸時將 Unix 換行符轉換為 CRLF 換行符。從 cURL 7.1.0 開始提供。

CURLOPT_CRLFILE (整數)

傳入一個 字串,指定一個包含 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 (整數)

在執行 HTTP 請求時,用於取代 GETHEAD 的自訂請求方法。這對於執行 DELETE 或其他更少見的 HTTP 請求很有用。有效值例如 GETPOSTCONNECT 等等;也就是說,不要在此輸入完整的 HTTP 請求行。例如,輸入 GET /index.html HTTP/1.0\r\n\r\n 是不正確的。這個選項接受一個 字串null。從 cURL 7.1.0 開始可用。

注意事項:

在使用自訂請求方法之前,請先確認伺服器支援該方法。

CURLOPT_DEFAULT_PROTOCOL (整數)

一個 字串,用於指定當 URL 缺少通訊協定名稱時的預設通訊協定。從 PHP 7.0.7 和 cURL 7.45.0 開始可用。

CURLOPT_DIRLISTONLY (整數)

將此選項設定為 1 將會根據所使用的通訊協定而產生不同的效果。基於 FTP 和 SFTP 的 URL 將只會列出目錄中的檔案名稱。POP3 將會列出 POP3 伺服器上的電子郵件訊息。對於 FILE,此選項沒有作用,因為在此模式下目錄始終會被列出。將此選項與 CURLOPT_WILDCARDMATCH 一起使用將會阻止後者產生任何作用。預設值為 0。從 cURL 7.17.0 開始可用。

CURLOPT_DISALLOW_USERNAME_IN_URL (整數)

設定為 true 將不允許包含使用者名稱的 URL。預設允許使用者名稱。從 PHP 7.3.0 和 cURL 7.61.0 開始可用。

CURLOPT_DNS_CACHE_TIMEOUT (整數)

將 DNS 記錄保留在記憶體中的秒數。此選項預設設定為 120(2 分鐘)。此選項接受任何可以轉換為有效 整數 的值。從 cURL 7.9.3 開始可用。

CURLOPT_DNS_INTERFACE (整數)

設定 DNS 解析器應該綁定的網路介面名稱。這必須是一個介面名稱(不是地址)。此選項接受 字串null。從 PHP 7.0.7 和 cURL 7.33.0 開始可用。

CURLOPT_DNS_LOCAL_IP4 (整數)

設定解析器應該綁定的本地 IPv4 地址。參數應包含單個數值 IPv4 地址。此選項接受 字串null。從 PHP 7.0.7 和 cURL 7.33.0 開始可用。

CURLOPT_DNS_LOCAL_IP6 (整數)

設定解析器應該綁定的本地 IPv6 地址。參數應包含單個數值 IPv6 地址。此選項接受 字串null。從 PHP 7.0.7 和 cURL 7.33.0 開始可用。

CURLOPT_DNS_SERVERS (整數)

傳遞一個以逗號分隔的 DNS 伺服器清單 字串,以取代系統預設值(例如:192.168.1.100,192.168.1.101:8080)。從 cURL 7.24.0 開始可用。

CURLOPT_DNS_SHUFFLE_ADDRESSES (整數)

設定為 true 以隨機排列所有返回地址的順序,以便在解析名稱並返回多個 IP 地址時,將以隨機順序使用它們。這可能導致 IPv4 在 IPv6 之前使用,反之亦然。從 PHP 7.3.0 和 cURL 7.60.0 開始可用。

CURLOPT_DNS_USE_GLOBAL_CACHE (整數)

設定為 true 以使用全域 DNS 快取。此選項並非執行緒安全。如果 PHP 是為非執行緒使用而建置的(CLI、FCGI、Apache2-Prefork 等),則預設情況下會啟用此選項。從 cURL 7.9.3 開始可用,並從 cURL 7.11.1 開始棄用。從 PHP 8.4 開始,此選項不再有任何作用。

CURLOPT_DOH_SSL_VERIFYHOST (整數)

設定為 2 以根據主機名稱驗證 DNS-over-HTTPS 伺服器的 SSL 憑證名稱欄位。從 PHP 8.2.0 和 cURL 7.76.0 開始可用。

CURLOPT_DOH_SSL_VERIFYPEER (整數)

設定為 1 以啟用,設定為 0 以停用 DNS-over-HTTPS 伺服器 SSL 憑證的驗證。從 PHP 8.2.0 和 cURL 7.76.0 開始可用。

CURLOPT_DOH_SSL_VERIFYSTATUS (整數)

設定為 1 以啟用,設定為 0 以停用使用「憑證狀態請求」TLS 擴充功能 (OCSP stapling) 驗證 DNS-over-HTTPS 伺服器憑證的狀態。從 PHP 8.2.0 和 cURL 7.76.0 開始可用。

CURLOPT_DOH_URL (整數)

提供 DNS-over-HTTPS URL。此選項接受 字串null。PHP 8.1.0 和 cURL 7.62.0 起可用。

CURLOPT_EGDSOCKET (整數)

類似 CURLOPT_RANDOM_FILE,但指定的是熵收集守護進程 (Entropy Gathering Daemon) socket 的檔案名稱。cURL 7.7.0 起可用,cURL 7.84.0 起棄用。

CURLOPT_ENCODING (整數)

Accept-Encoding: 標頭的內容,為 字串 格式。這可以啟用回應的解碼。支援的編碼方式有:identitydeflategzip。如果設定為空 字串,則會發送包含所有支援編碼類型的標頭。cURL 7.10 起可用,cURL 7.21.6 起棄用。

CURLOPT_EXPECT_100_TIMEOUT_MS (整數)

Expect: 100-continue 回應的逾時時間,單位為毫秒。預設為 1000 毫秒。此選項接受任何可以轉換為有效 整數 的值。PHP 7.0.7 和 cURL 7.36.0 起可用。

CURLOPT_FAILONERROR (整數)

若傳回的 HTTP 狀態碼大於或等於 400,則設為 true 會明確地失敗。預設行為是正常返回頁面,忽略狀態碼。cURL 7.1.0 起可用。

CURLOPT_FILE (整數)

接受檔案控制代碼 資源,表示傳輸應寫入的檔案。預設為 STDOUT(瀏覽器視窗)。cURL 7.1.0 起可用,cURL 7.9.7 起棄用。

CURLOPT_FILETIME (整數)

設為 true 以嘗試取得遠端文件的修改日期。可以使用 curl_getinfo() 搭配 CURLINFO_FILETIME 選項來取得此值。cURL 7.5.0 起可用。

CURLOPT_FNMATCH_FUNCTION (整數)

傳遞一個將用於萬用字元比對的 可呼叫物件。回呼函式的簽章應為

回呼函式(資源 $curlHandle, 字串 $pattern, 字串 $string): 整數
curlHandle
cURL 句柄。
pattern
萬用字元模式。
string
要執行萬用字元模式比對的 字串
如果模式符合 字串,回呼函式應回傳 CURL_FNMATCHFUNC_MATCH;如果不符合,則回傳 CURL_FNMATCHFUNC_NOMATCH;如果發生錯誤,則回傳 CURL_FNMATCHFUNC_FAIL。從 cURL 7.21.0 版本開始提供。

CURLOPT_FOLLOWLOCATION (整數)

設定為 true 以追蹤伺服器在 HTTP 標頭中傳送的任何 Location: 標頭。另請參閱 CURLOPT_MAXREDIRS。當啟用 open_basedir 時,此常數無法使用。從 cURL 7.1.0 版本開始提供。

CURLOPT_FORBID_REUSE (整數)

設定為 true 可強制連線在處理完成後明確關閉,並且不放入池中重複使用。從 cURL 7.7.0 版本開始提供。

CURLOPT_FRESH_CONNECT (整數)

設定為 true 可強制使用新的連線,而不是使用快取的連線。從 cURL 7.7.0 版本開始提供。

CURLOPT_FTPAPPEND (整數)

設定為 true 可附加到遠端檔案,而不是覆寫它。從 cURL 7.1.0 版本開始提供,並從 cURL 7.16.4 版本開始棄用。

CURLOPT_FTPASCII (整數)

CURLOPT_TRANSFERTEXT 的別名。請改用它。從 cURL 7.1 版本開始提供,從 cURL 7.11.1 版本開始棄用,最後可在 cURL 7.15.5 中使用。從 PHP 7.3.0 版本開始移除。

CURLOPT_FTPLISTONLY (整數)

設定為 true 僅列出 FTP 目錄的名稱。從 cURL 7.1.0 版本開始提供,並從 cURL 7.16.4 版本開始棄用。

CURLOPT_FTPPORT (整數)

一個 字串,將用於取得 FTP PORT 指令要使用的 IP 位址。PORT 指令會告知遠端伺服器連線到我們指定的 IP 位址。該 字串 可以是純 IP 位址、主機名稱、網路介面名稱 (在 Unix 下),或者只是單純的 - 以使用系統的預設 IP 位址。此選項接受 字串null。從 cURL 7.1.0 版本開始提供。

CURLOPT_FTPSSLAUTH整數

設定 FTP over SSL 驗證方法(如果已啟用)為任何 CURLFTPAUTH_* 常數。預設為 CURLFTPAUTH_DEFAULT。從 cURL 7.12.2 版本開始提供。

CURLOPT_FTP_ACCOUNT整數

傳遞一個 字串,在提供使用者名稱和密碼給伺服器後,該字串將作為帳戶資訊透過 FTP 傳送(使用 ACCT 命令)。設定為 null 以停用傳送帳戶資訊。預設為 null。從 cURL 7.13.0 版本開始提供。

CURLOPT_FTP_ALTERNATIVE_TO_USER整數

傳遞一個 字串,如果 USER/PASS 協商失敗,將使用該字串嘗試透過 FTP 進行驗證。從 cURL 7.15.5 版本開始提供。

CURLOPT_FTP_CREATE_MISSING_DIRS整數

設定為 true,以便在 FTP 操作遇到目前不存在的路徑時建立缺少的目錄。從 cURL 7.10.7 版本開始提供。

CURLOPT_FTP_FILEMETHOD整數

告訴 cURL 使用哪種方法來存取 FTP(S) 伺服器上的檔案。可能的值為任何 CURLFTPMETHOD_* 常數。預設為 CURLFTPMETHOD_MULTICWD。從 cURL 7.15.1 版本開始提供。

CURLOPT_FTP_RESPONSE_TIMEOUT整數

cURL 等待 FTP 伺服器回應的逾時時間(以秒為單位)。此選項會覆寫 CURLOPT_TIMEOUT。此選項接受任何可以轉換為有效 整數 的值。此選項名稱已由 CURLOPT_SERVER_RESPONSE_TIMEOUT 取代,從 PHP 8.4.0 版本開始提供。從 cURL 7.10.8 版本開始提供,並從 cURL 7.85.0 版本開始棄用。

CURLOPT_FTP_SKIP_PASV_IP整數

如果此選項設定為 1,cURL 將不會使用伺服器在其對 cURL 的 PASV 命令的 227 回應中建議的 IP 位址,而是使用它用於連線的 IP 位址。cURL 不會忽略從 227 回應接收到的埠號。從 cURL 7.74.0 版本開始預設為 1,在此之前的版本預設為 0。從 cURL 7.15.0 版本開始提供。

CURLOPT_FTP_SSL整數

從 cURL 7.11.0 版本開始提供,並從 cURL 7.16.4 版本開始棄用。

CURLOPT_FTP_SSL_CCC整數

這個選項讓 cURL 使用 CCC(清除命令通道),它會在驗證後關閉 SSL/TLS 層,使控制通道的其餘通訊未加密。使用其中一個 CURLFTPSSL_CCC_* 常數。預設為 CURLFTPSSL_CCC_NONE。從 cURL 7.16.1 開始可用。

CURLOPT_FTP_USE_EPRT (整數)

設定為 true 表示在執行主動 FTP 下載時使用 EPRT(以及 LPRT)。設定為 false 表示停用 EPRTLPRT,並且僅使用 PORT。從 cURL 7.10.5 開始可用。

CURLOPT_FTP_USE_EPSV (整數)

設定為 true 表示在 FTP 傳輸時先嘗試 EPSV 命令,然後再恢復為 PASV。設定為 false 表示停用 EPSV。從 cURL 7.9.2 開始可用。

CURLOPT_FTP_USE_PRET (整數)

設定為 1 表示在 PASV(和 EPSV)之前傳送 PRET 命令。在使用主動 FTP 傳輸模式時無效。預設為 0。從 cURL 7.20.0 開始可用。

CURLOPT_GSSAPI_DELEGATION (整數)

設定為 CURLGSSAPI_DELEGATION_FLAG 允許無條件的 GSSAPI 憑證委派。設定為 CURLGSSAPI_DELEGATION_POLICY_FLAG 僅在服務票證中設定了 OK-AS-DELEGATE 旗標時才委派。預設為 CURLGSSAPI_DELEGATION_NONE。從 cURL 7.22.0 開始可用。

CURLOPT_HAPPY_EYEBALLS_TIMEOUT_MS (整數)

Happy eyeballs 演算法中 IPv6 的領先時間。Happy eyeballs 會嘗試連線到雙堆疊主機的 IPv4 和 IPv6 位址,在超時毫秒數內優先使用 IPv6。預設為 CURL_HET_DEFAULT,目前為 200 毫秒。此選項接受任何可以轉換為有效 整數 的值。從 PHP 7.3.0 和 cURL 7.59.0 開始可用。

CURLOPT_HAPROXYPROTOCOL (整數)

true 表示在連線開始時傳送 HAProxy PROXY 協定 v1 標頭。預設動作是不傳送此標頭。從 PHP 7.3.0 和 cURL 7.60.0 開始可用。

CURLOPT_HEADER (整數)

設定為 true 表示在傳送到由 CURLOPT_WRITEFUNCTION 定義的回呼函式的輸出中包含標頭。從 cURL 7.1.0 開始可用。

CURLOPT_HEADERFUNCTION (整數)

具有以下簽章的 可呼叫 函式

callback(資源 $curlHandle, 字串 $headerData): 整數
curlHandle
cURL 句柄。
headerData
回呼函式必須寫入的標頭資料。
回呼函式應返回寫入的位元組數。從 cURL 7.7.2 開始提供。

CURLOPT_HEADEROPT (整數)

將 HTTP 標頭同時發送到代理伺服器和主機,或分別發送。可能的值為任何 CURLHEADER_* 常數。從 cURL 7.42.1 開始,預設值為 CURLHEADER_SEPARATE,而在之前的版本中,預設值為 CURLHEADER_UNIFIED。從 PHP 7.0.7 和 cURL 7.37.0 開始提供。

CURLOPT_HSTS (整數)

包含 HSTS(HTTP 嚴格傳輸安全)快取檔案名稱的字串,或 null 以允許 HSTS 不讀取或寫入任何檔案,並清除要從中讀取 HSTS 資料的檔案列表。從 PHP 8.2.0 和 cURL 7.74.0 開始提供。

CURLOPT_HSTS_CTRL (整數)

接受由 CURLHSTS_* 常數定義的 HSTS(HTTP 嚴格傳輸安全)功能的位元遮罩。從 PHP 8.2.0 和 cURL 7.74.0 開始提供。

CURLOPT_HTTP09_ALLOWED (整數)

是否允許 HTTP/0.9 回應。從 cURL 7.66.0 開始,預設值為 false;之前的預設值為 true。分別從 PHP 7.3.15 和 7.4.3 以及 cURL 7.64.0 開始提供。

CURLOPT_HTTP200ALIASES (整數)

一個 陣列,其中包含將被視為有效回應而不是錯誤的 HTTP 200 回應。從 cURL 7.10.3 開始提供。

CURLOPT_HTTPAUTH (整數)

要使用的 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 (整數)

設定為 true 可將 HTTP 請求方法重置為 GET。由於 GET 是預設值,因此僅在請求方法已更改時才需要這樣做。從 cURL 7.8.1 版本開始提供。

CURLOPT_HTTPHEADER (整數)

要設定的 HTTP 標頭欄位陣列,格式為 array('Content-type: text/plain', 'Content-length: 100') 。從 cURL 7.1.0 版本開始提供。

CURLOPT_HTTPPROXYTUNNEL (整數)

設定為 true 可透過指定的 HTTP 代理伺服器建立通道。從 cURL 7.3.0 版本開始提供。

CURLOPT_HTTP_CONTENT_DECODING (整數)

設定為 false 可取得原始 HTTP 回應主體。從 cURL 7.16.2 版本開始提供。

CURLOPT_HTTP_TRANSFER_DECODING (整數)

如果設定為 0,則停用傳輸解碼。如果設定為 1,則啟用傳輸解碼。除非此選項設定為 0,否則 cURL 預設會執行分塊傳輸解碼。預設值為 1。從 cURL 7.16.2 版本開始提供。

CURLOPT_HTTP_VERSION (整數)

設定為其中一個 CURL_HTTP_VERSION_* 常數,讓 cURL 使用指定的 HTTP 版本。從 cURL 7.9.1 版本開始提供。

CURLOPT_IGNORE_CONTENT_LENGTH (整數)

如果設定為 1,則忽略 HTTP 回應中的 Content-Length 標頭,並且在 FTP 傳輸中忽略請求或依賴它。預設值為 0。從 cURL 7.14.1 版本開始提供。

CURLOPT_INFILE (整數)

接受檔案控制代碼 資源,指向上傳時應讀取傳輸資料的檔案。從 cURL 7.1.0 版本開始提供,並從 cURL 7.9.7 版本開始棄用。請改用 CURLOPT_READDATA

CURLOPT_INFILESIZE (整數)

將檔案上傳到遠端網站時,檔案的預期大小(以位元組為單位)。請注意,使用此選項並不會阻止 cURL 傳送更多資料,因為實際傳送的內容取決於 CURLOPT_READFUNCTION。此選項接受任何可以轉換為有效 整數 的值。從 cURL 7.1.0 版本開始提供。

CURLOPT_INTERFACE (整數)

設定為包含要使用的輸出網路介面名稱的 字串。這可以是介面名稱、IP 位址或主機名稱。從 cURL 7.1.0 版本開始提供。

CURLOPT_IPRESOLVE (整數)

允許應用程式選擇在解析主機名稱時使用的 IP 位址類型。僅當使用可解析多個 IP 版本位址的主機名稱時,此選項才有意義。設定為其中一個 CURL_IPRESOLVE_* 常數。預設為 CURL_IPRESOLVE_WHATEVER。從 cURL 7.10.8 開始提供。

CURLOPT_ISSUERCERT (整數)

如果設定為一個 字串,指定一個包含 PEM 格式 CA 憑證的檔案,則會對同儕憑證執行額外檢查,以驗證發行者確實是與此選項提供的憑證相關聯的發行者。要將檢查結果視為失敗,應將此選項與 CURLOPT_SSL_VERIFYPEER 選項一起使用。從 cURL 7.19.0 開始提供。

CURLOPT_ISSUERCERT_BLOB (整數)

傳遞一個包含 PEM 格式 CA SSL 憑證二進位資料的 字串。如果設定,則會對同儕憑證執行額外檢查,以驗證發行者確實是與此選項提供的憑證相關聯的發行者。從 PHP 8.1.0 和 cURL 7.71.0 開始提供。

CURLOPT_KEEP_SENDING_ON_ERROR (整數)

設定為 true,如果返回的 HTTP 程式碼大於或等於 300,則繼續傳送請求主體。預設動作是停止傳送並關閉串流或連線。適用於手動 NTLM 驗證。大多數應用程式不需要此選項。從 PHP 7.3.0 和 cURL 7.51.0 開始提供。

CURLOPT_KEYPASSWD (整數)

設定為包含使用 CURLOPT_SSLKEYCURLOPT_SSH_PRIVATE_KEYFILE 私鑰所需的密碼的 字串。將此選項設定為 null 將停用這些選項的密碼使用。從 cURL 7.17.0 開始提供。

CURLOPT_KRB4LEVEL (整數)

KRB4 (Kerberos 4) 安全等級。以下任何 字串 值(從最低到最高)皆有效:clearsafeconfidentialprivate。如果 字串 不符合其中任何一個,則使用 private。將此選項設定為 null 將停用 KRB4 安全性。目前 KRB4 安全性僅適用於 FTP 傳輸。從 cURL 7.3.0 開始提供,並從 cURL 7.17.0 開始棄用。

CURLOPT_KRBLEVEL (整數)

設定 FTP 的 Kerberos 安全等級,並啟用 Kerberos 感知。應設定為以下其中一個 字串clearsafeconfidentialprivate。如果設定了 字串 但不符合其中任何一個,則使用 private。將此選項設定為 null 將停用 FTP 的 Kerberos 支援。預設為 null。從 cURL 7.16.4 開始提供。

CURLOPT_LOCALPORT (整數 (int))

設定連線所用通訊端 (socket) 的本地埠號。此選項接受任何可以轉換為有效整數 (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))

設定一個字串 (string),其中包含要轉送到另一台伺服器的已提交訊息的驗證地址(識別碼)。地址不應以尖括號 (><) 括起來。如果使用空字串,則 cURL 會根據 RFC 2554 的要求傳送一對括號。從 cURL 7.25.0 版本開始提供。

CURLOPT_MAIL_FROM (整數 (int))

傳送 SMTP 郵件時,設定一個字串 (string) 作為寄件者的電子郵件地址。電子郵件地址應該以尖括號 (><) 括起來,如果未指定,則會自動新增。如果未指定此參數,則會向 SMTP 伺服器傳送一個空地址,這可能會導致電子郵件被拒絕。從 cURL 7.20.0 版本開始提供。

CURLOPT_MAIL_RCPT (整數 (int))

設定為一個字串 (string) 陣列 (array),其中包含要在 SMTP 郵件請求中傳遞給伺服器的收件者。每個收件者都應該以尖括號 (><) 括起來。如果第一個字元未使用尖括號,cURL 會假設已提供單一電子郵件地址,並將該地址括在括號內。從 cURL 7.20.0 版本開始提供。

CURLOPT_MAIL_RCPT_ALLLOWFAILS整數

設定為 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整數

允許現有連線被視為可重複使用的最大閒置時間。預設最大期限設定為 118 秒。此選項接受任何可以轉換為有效 整數 的值。從 PHP 8.2.0 和 cURL 7.65.0 開始可用。

CURLOPT_MAXCONNECTS整數

允許的持續連線最大數量。達到限制時,快取中最舊的連線將被關閉,以防止開啟的連線數量增加。此選項接受任何可以轉換為有效 整數 的值。從 cURL 7.7.0 開始可用。

CURLOPT_MAXFILESIZE整數

設定允許下載的檔案最大大小(以位元組為單位)。如果請求的檔案大於此值,則傳輸將中止,並返回 CURLE_FILESIZE_EXCEEDED。傳遞 0 將停用此選項,傳遞負大小將返回 CURLE_BAD_FUNCTION_ARGUMENT。如果在下載開始之前檔案大小未知,則此選項無效。若要設定大於 2GB 的大小限制,應使用 CURLOPT_MAXFILESIZE_LARGE。從 cURL 8.4.0 開始,如果正在進行的傳輸達到此閾值,此選項也會停止傳輸。此選項接受任何可以轉換為有效 整數 的值。預設值為 0。從 cURL 7.10.8 開始可用。

CURLOPT_MAXFILESIZE_LARGE整數

允許下載的最大檔案大小(以位元組為單位)。如果請求的檔案大於此值,則傳輸將不會開始,並返回 CURLE_FILESIZE_EXCEEDED。檔案大小在下載前並非總是已知,對於此類檔案,即使檔案傳輸最終大於此給定限制,此選項也無效。此選項接受任何可以轉換為有效 整數 的值。從 PHP 8.2.0 和 cURL 7.11.0 開始可用。

CURLOPT_MAXLIFETIME_CONN整數

允許重複使用現有連線的最長時間(以秒為單位),從連線建立起算。如果在快取中找到的連線比此值舊,則在任何進行中的傳輸完成後,該連線將被關閉。預設值為 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 (int)

設定一個包含 .netrc 檔案完整路徑名稱的 字串。如果省略此選項且設定了 CURLOPT_NETRC,cURL 會在目前使用者的家目錄中檢查 .netrc 檔案。從 cURL 7.11.0 開始可用。

CURLOPT_NEW_DIRECTORY_PERMS (整數)

設定在遠端伺服器上新建立目錄的權限值(整數)。預設值為 0755。可以使用此選項的協定只有 sftp://scp://file://。從 cURL 7.16.4 開始可用。

CURLOPT_NEW_FILE_PERMS (整數)

設定在遠端伺服器上新建立檔案的權限值(整數)。預設值為 0644。可以使用此選項的協定只有 sftp://scp://file://。從 cURL 7.16.4 開始可用。

CURLOPT_NOBODY (整數)

設定為 true 可從輸出中排除主體內容。對於 HTTP(S),cURL 會發出 HEAD 請求。對於大多數其他協定,cURL 根本不會要求主體資料。將此選項更改為 false 將導致主體資料包含在輸出中。從 cURL 7.1.0 開始可用。

CURLOPT_NOPROGRESS (整數)

設定為 true 可停用 cURL 傳輸的進度計。

注意事項:

PHP 會自動將此選項設定為 true,僅應在除錯時更改此選項。

從 cURL 7.1.0 開始可用。

CURLOPT_NOPROXY (整數)

設定一個 字串,其中包含以逗號分隔的不需要透過代理伺服器即可連線的主機名稱清單。此清單中的每個名稱都與包含主機名稱的網域或主機名稱本身相符。 字串 中唯一可用的萬用字元是單個 * 字元,它會比對所有主機,有效地停用代理伺服器。將此選項設定為空 字串 將為所有主機名稱啟用代理伺服器。從 cURL 7.86.0 開始,可以使用 CIDR 標記法提供使用此選項設定的 IP 位址。從 cURL 7.19.4 開始可用。

CURLOPT_NOSIGNAL (整數)

true 表示忽略任何導致向 PHP 程序發送信號的 cURL 函式。在多執行緒 SAPI 中,預設會開啟此選項,以便仍可使用逾時選項。從 cURL 7.10 開始可用。

CURLOPT_PASSWDFUNCTION整數

具有以下簽章的 可呼叫 函式

回呼函式(資源 $curlHandle, 字串 $passwordPrompt, 整數 $maximumPasswordLength): 字串
curlHandle
cURL 句柄。
passwordPrompt
密碼提示。
maximumPasswordLength
密碼的最大長度。
此回呼函式應返回一個包含密碼的字串。從 cURL 7.4.2 開始可用,從 cURL 7.11.1 開始棄用,最後可用於 cURL 7.15.5。從 PHP 7.3.0 開始移除。

CURLOPT_PASSWORD整數

設定為一個包含用於驗證的密碼的字串。從 cURL 7.19.1 開始可用。

CURLOPT_PATH_AS_IS整數

設定為 true 可讓 cURL 在將 URL 路徑傳遞到伺服器之前不修改它們。預設值為 false,這會根據 RFC 3986 第 5.2.4 節移除 URL 路徑部分中可能存在的 /..//./ 序列。從 PHP 7.0.7 和 cURL 7.42.0 開始可用。

CURLOPT_PINNEDPUBLICKEY整數

設定一個包含固定公鑰的字串。該字串可以是 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 操作中要發佈的完整資料。此參數可以作為 urlencoded 的 字串 傳遞,例如 '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 (int)

具有以下簽章的 可呼叫 函式

回呼函數(
    資源 $curlHandle,
    int $bytesToDownload,
    int $bytesDownloaded,
    int $bytesToUpload,
    int $bytesUploaded
): int
curlHandle
cURL 句柄。
bytesToDownload
預期在此次傳輸中下載的總位元組數。
bytesDownloaded
目前已下載的位元組數。
bytesToUpload
預期在此次傳輸中上傳的總位元組數。
bytesUploaded
目前已上傳的位元組數。
回呼函數應回傳一個非零值的 int 以中止傳輸並設定 CURLE_ABORTED_BY_CALLBACK 錯誤。

注意事項:

僅當 CURLOPT_NOPROGRESS 選項設為 false 時,才會呼叫回呼函數。

cURL 7.1.0 起可用,cURL 7.32.0 起棄用。請改用 CURLOPT_XFERINFOFUNCTION

CURLOPT_PROTOCOLS (int)

CURLPROTO_* 值的位元遮罩。如果使用,此位元遮罩會限制 cURL 在傳輸中可使用的協議。預設為 CURLPROTO_ALL,即 cURL 將接受其支援的所有協議。另請參閱 CURLOPT_REDIR_PROTOCOLS。cURL 7.19.4 起可用,cURL 7.85.0 起棄用。

CURLOPT_PROTOCOLS_STR (int)

設定為一個以逗號分隔、不區分大小寫的協議名稱(URL 結構描述)列表的 字串,以允許在傳輸中使用。設定為 ALL 以啟用所有協議。預設情況下,cURL 接受其建置時支援的所有協議。可用的協議有:DICTFILEFTPFTPSGOPHERGOPHERSHTTPHTTPSIMAPIMAPSLDAPLDAPSMQTTPOP3POP3SRTMPRTMPERTMPSRTMPTRTMPTERTMPTSRTSPSCPSFTPSMBSMBSSMTPSMTPSTELNETTFTPWSWSS。PHP 8.3.0 和 cURL 7.85.0 起可用。

CURLOPT_PROXY (int)

一個 字串,指定用於傳送請求的 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 (整數)

一個 整數,指定要連線的代理伺服器埠號。此埠號也可以在 CURLOPT_PROXY 中設定。將此值設定為零會使 cURL 使用預設的代理埠號或代理 URL 字串 中指定的埠號。從 cURL 7.1.0 版本開始提供。

CURLOPT_PROXYTYPE (整數)

將代理類型設定為 CURLPROXY_* 常數之一。預設為 CURLPROXY_HTTP。從 cURL 7.10 版本開始提供。

CURLOPT_PROXYUSERNAME (整數)

設定一個 字串 作為用於代理驗證的使用者名稱。從 cURL 7.19.1 版本開始提供。

CURLOPT_PROXYUSERPWD (整數)

一個格式為 [username]:[password]字串,包含使用者名稱和密碼,用於代理連線。從 cURL 7.1.0 版本開始提供。

CURLOPT_PROXY_CAINFO (整數)

代理憑證授權單位 (CA) 叢集的路徑。將路徑設定為一個 字串,該字串指定一個包含一個或多個憑證的檔案,用於驗證 HTTPS 代理。此選項用於連線到 HTTPS 代理,而不是 HTTPS 伺服器。預設設定為系統路徑,其中假設儲存了 cURL 的 cacert 叢集。從 PHP 7.3.0 和 cURL 7.52.0 版本開始提供。

CURLOPT_PROXY_CAINFO_BLOB (整數)

一個 字串,包含 PEM 檔案的名稱,該檔案持有一個或多個用於驗證 HTTPS 代理伺服器的憑證。此選項用於連接到 HTTPS 代理伺服器,而不是 HTTPS 伺服器。預設設定為系統路徑,其中假設儲存了 cURL 的 cacert 軟體包。自 PHP 8.2.0 和 cURL 7.77.0 起可用。

CURLOPT_PROXY_CAPATH (整數)

一個 字串,包含用於驗證 HTTPS 代理伺服器的多個 CA 憑證的目錄。自 PHP 7.3.0 和 cURL 7.52.0 起可用。

CURLOPT_PROXY_CRLFILE (整數)

設定為一個 字串,其中包含 PEM 格式的 CRL(憑證撤銷清單)串聯的檔案名稱,用於在 SSL 交換期間進行的憑證驗證。自 PHP 7.3.0 和 cURL 7.52.0 起可用。

CURLOPT_PROXY_ISSUERCERT (整數)

代理伺服器發行者 SSL 憑證檔案名稱 字串。自 PHP 8.1.0 和 cURL 7.71.0 起可用。

CURLOPT_PROXY_ISSUERCERT_BLOB (整數)

一個包含代理伺服器發行者 SSL 憑證的 字串。自 PHP 8.1.0 和 cURL 7.71.0 起可用。

CURLOPT_PROXY_KEYPASSWD (整數)

設定用作使用 CURLOPT_PROXY_SSLKEY 私鑰所需的密碼的 字串。載入憑證不需要密碼,但載入私鑰需要密碼。此選項用於連接到 HTTPS 代理伺服器,而不是 HTTPS 伺服器。自 PHP 7.3.0 和 cURL 7.52.0 起可用。

CURLOPT_PROXY_PINNEDPUBLICKEY (整數)

設定 HTTPS 代理伺服器的固定公鑰。字串 可以是固定公鑰的檔案名稱,預期其格式為 PEMDER 檔案。字串 也可以是任何數量的以 sha256// 開頭,並以 ; 分隔的 base64 編碼 sha256 雜湊值。自 PHP 7.3.0 和 cURL 7.52.0 起可用。

CURLOPT_PROXY_SERVICE_NAME (整數)

一個包含代理伺服器驗證服務名稱的 字串。自 PHP 7.0.7、cURL 7.43.0(適用於 HTTP 代理伺服器)和 cURL 7.49.0(適用於 SOCKS5 代理伺服器)起可用。

CURLOPT_PROXY_SSLCERT (整數)

一個字串,包含用於連線到 HTTPS 代理伺服器的客戶端憑證檔案名稱。預設格式在 Secure Transport 上為 P12,在其他引擎上為 PEM,可以使用 CURLOPT_PROXY_SSLCERTTYPE 更改。使用 NSS 或 Secure Transport 時,這也可以是安全資料庫中用於驗證的憑證暱稱。如果要使用目前目錄中的檔案,則必須在其前面加上 ./ 以避免與暱稱混淆。PHP 7.3.0 和 cURL 7.52.0 起可用。

CURLOPT_PROXY_SSLCERTTYPE (整數)

一個字串,包含連線到 HTTPS 代理伺服器時使用的客戶端憑證格式。支援的格式為 PEMDER,Secure Transport 除外。 OpenSSL(0.9.3 版及更高版本)和 Secure Transport(iOS 5 或更高版本,或 OS X 10.7 或更高版本)也支援 PKCS#12 編碼檔案的 P12 格式。預設為 PEM。PHP 7.3.0 和 cURL 7.52.0 起可用。

CURLOPT_PROXY_SSLCERT_BLOB (整數)

一個字串,包含 SSL 代理客戶端憑證。PHP 8.1.0 和 cURL 7.71.0 起可用。

CURLOPT_PROXY_SSLKEY (整數)

一個字串,包含用於連線到 HTTPS 代理伺服器的私鑰檔案名稱。預設格式為 PEM,可以使用 CURLOPT_PROXY_SSLKEYTYPE 更改。(僅限 iOS 和 Mac OS X)如果 cURL 是針對 Secure Transport 建置的,則會忽略此選項。在啟用 TLS 的情況下可用。PHP 7.3.0 和 cURL 7.52.0 起可用。

CURLOPT_PROXY_SSLKEYTYPE (整數)

一個字串,包含私鑰的格式。支援的格式有:PEMDERENG。PHP 7.3.0 和 cURL 7.52.0 起可用。

CURLOPT_PROXY_SSLKEY_BLOB (整數)

一個字串,包含用於連線到 HTTPS 代理伺服器的私鑰。PHP 8.1.0 和 cURL 7.71.0 起可用。

CURLOPT_PROXY_SSLVERSION (整數)

將偏好的 HTTPS 代理 TLS 版本設定為 CURL_SSLVERSION_* 常數之一。預設為 CURL_SSLVERSION_DEFAULT

警告

最好不要設定此選項,並保留預設值 CURL_SSLVERSION_DEFAULT,它會嘗試找出遠端 SSL 協定版本。

PHP 7.3.0 和 cURL 7.52.0 起可用。

CURLOPT_PROXY_SSL_CIPHER_LIST (整數)

一個以冒號分隔的字串,其中包含用於連線到 HTTPS 代理伺服器的加密演算法清單。當與 OpenSSL 一起使用時,逗號和空格也可以作為分隔符號,並且可以使用 !-+ 作為運算符。PHP 7.3.0 和 cURL 7.52.0 起可用。

CURLOPT_PROXY_SSL_OPTIONS (整數)

設定代理伺服器 SSL 行為選項,它是 CURLSSLOPT_* 常數的位元遮罩。PHP 7.3.0 和 cURL 7.52.0 起可用。

CURLOPT_PROXY_SSL_VERIFYHOST (整數)

設定為 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 (整數)

設定為 false 以停止 cURL 驗證對等憑證。可以使用 CURLOPT_CAINFO 選項指定要驗證的替代憑證,或者可以使用 CURLOPT_CAPATH 選項指定憑證目錄。設定為 false 時,對等憑證驗證將會成功,無論憑證為何。預設值為 true。PHP 7.3.0 和 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 和 cURL 7.61.0 起可用。

CURLOPT_PROXY_TLSAUTH_PASSWORD (整數)

一個字串,其中包含用於 CURLOPT_PROXY_TLSAUTH_TYPE 選項指定的 TLS 驗證方法的密碼。需要同時設定 CURLOPT_PROXY_TLSAUTH_USERNAME 選項。PHP 7.3.0 和 cURL 7.52.0 起可用。

CURLOPT_PROXY_TLSAUTH_TYPE (整數)

HTTPS 連線使用的 TLS 驗證方法。支援的方法為 SRP

注意事項:

如果雙方都有一個共享密鑰,則 TLS 的安全遠端密碼 (SRP) 驗證可提供相互驗證。要使用 TLS-SRP,還必須設定 CURLOPT_PROXY_TLSAUTH_USERNAMECURLOPT_PROXY_TLSAUTH_PASSWORD 選項。

PHP 7.3.0 和 cURL 7.52.0 起可用。

CURLOPT_PROXY_TLSAUTH_USERNAME (int)

用於 HTTPS 代理伺服器 TLS 驗證方法的使用者名稱,該方法由 CURLOPT_PROXY_TLSAUTH_TYPE 選項指定。需要同時設定 CURLOPT_PROXY_TLSAUTH_PASSWORD 選項。PHP 7.3.0 和 cURL 7.52.0 起可用。

CURLOPT_PROXY_TRANSFER_MODE (int)

設定為 1 可透過將 type=atype=i 附加到 URL 來設定透過 HTTP 代理伺服器進行 FTP 傳輸的傳輸模式(二進位或 ASCII)。如果沒有此設定或將其設定為 0,則在透過代理伺服器進行 FTP 時,CURLOPT_TRANSFERTEXT 不會有作用。預設值為 0。cURL 7.18.0 起可用。

CURLOPT_PUT (int)

true 表示使用 HTTP PUT 上傳檔案。要 PUT 的檔案必須使用 CURLOPT_READDATACURLOPT_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 (整數)

具有以下簽章的 可呼叫 函式

回呼函式(資源 $curlHandle, 資源 $streamResource, 整數 $maxAmountOfDataToRead): 字串
curlHandle
cURL 句柄。
streamResource
透過選項 CURLOPT_READDATA 提供給 cURL 的串流 資源
maxAmountOfDataToRead
要讀取的最大資料量。
回呼函式應返回一個長度等於或小於請求資料量的 字串,通常是透過從傳遞的串流 資源 讀取資料來實現。它應該返回一個空的 字串 來表示 EOF(檔案結束)。從 cURL 7.1.0 開始可用。

CURLOPT_REDIR_PROTOCOLS (整數)

CURLPROTO_* 值的位元遮罩,當啟用 CURLOPT_FOLLOWLOCATION 時,它限制 cURL 在重定向傳輸中可使用的協議。這允許限制特定傳輸只允許在重定向中使用協議的子集。從 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 (整數)

設定為一個以逗號分隔、不區分大小寫的協議名稱(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 (整數)

一個包含 HTTP 請求中要使用的 Referer: 標頭內容的字串。從 cURL 7.1.0 開始可用。

CURLOPT_REQUEST_TARGET (整數)

一個在即將發出的請求中使用的字串,用於取代從 URL 擷取的路徑。從 PHP 7.3.0 和 cURL 7.55.0 開始可用。

CURLOPT_RESOLVE (整數)

提供一個以冒號分隔的字串陣列,其中包含特定主機和連接埠對的自訂位址,格式如下: array( "example.com:80:127.0.0.1", "example2.com:443:127.0.0.2", ) 從 cURL 7.21.3 開始可用。

CURLOPT_RESUME_FROM (整數)

恢復傳輸的偏移量,以位元組為單位。此選項接受任何可以轉換為有效整數的值。從 cURL 7.1.0 開始可用。

CURLOPT_RETURNTRANSFER (整數)

true 將傳輸作為 curl_exec() 返回值的字串返回,而不是直接輸出。

CURLOPT_RTSP_CLIENT_CSEQ (整數)

設定一個整數,作為下一個 RTSP 請求的 CSEQ 號碼。如果應用程式正在恢復先前中斷的連線,則此選項很有用。CSEQ 將從這個新號碼開始遞增。預設值為0。從 cURL 7.20.0 開始可用。

CURLOPT_RTSP_REQUEST (整數)

設定要發出的 RTSP 請求類型。必須是 CURL_RTSPREQ_* 常數之一。從 cURL 7.20.0 開始提供。

CURLOPT_RTSP_SERVER_CSEQ (整數)

設定一個 整數,其中包含預期下一個 RTSP 伺服器到客戶端請求的 CSEQ 編號。此功能(監聽伺服器請求)尚未實現。預設值為 0。從 cURL 7.20.0 開始提供。

CURLOPT_RTSP_SESSION_ID (整數)

設定一個 字串,其中包含目前控制代碼的 RTSP 工作階段 ID 值。一旦將此值設定為任何非 空值 的值,如果從伺服器接收到的 ID 不相符,cURL 將返回 CURLE_RTSP_SESSION_ERROR。如果設定為 空值,cURL 會在伺服器第一次在回應中設定 ID 時自動設定 ID。預設值為 空值。從 cURL 7.20.0 開始提供。

CURLOPT_RTSP_STREAM_URI (整數)

設定一個 字串,其中包含要操作的串流 URI。如果未設定,cURL 預設會通過在 RTSP 串流 URI 的位置傳遞 * 來操作一般伺服器選項。使用 RTSP 時,CURLOPT_RTSP_STREAM_URI 指示在請求標頭中要傳送到伺服器的 URL,而 CURLOPT_URL 指示要連線的位置。從 cURL 7.20.0 開始提供。

CURLOPT_RTSP_TRANSPORT (整數)

設定此 RTSP 工作階段的 Transport: 標頭。從 cURL 7.20.0 開始提供。

CURLOPT_SAFE_UPLOAD (整數)

永遠為 ,這會停用在 CURLOPT_POSTFIELDS 中使用 @ 前綴上傳檔案的功能,這表示以 @ 開頭的值可以安全地作為欄位傳遞。CURLFile 可用於上傳。

CURLOPT_SASL_AUTHZID (整數)

傳輸的授權識別碼 (authzid) 字串。僅適用於 PLAIN SASL 驗證機制,其中它是可選的。如果未指定,則只會將使用者名稱指定的驗證識別碼 (authcid) 與密碼一起傳送到伺服器。伺服器在未提供 authzid 時將從 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))

一個包含驗證服務名稱的 字串 (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_BASICCURLAUTH_GSSAPICURLAUTH_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 (整數 (int))

設定一個包含 SOCKS5 服務名稱的 字串 (string)。預設為 rcmd。cURL 7.19.4 起可用,並自 cURL 7.49.0 起棄用。請改用 CURLOPT_PROXY_SERVICE_NAME

CURLOPT_SSH_AUTH_TYPES (整數 (int))

由以下一個或多個常數組成的位元遮罩:CURLSSH_AUTH_PUBLICKEYCURLSSH_AUTH_PASSWORDCURLSSH_AUTH_HOSTCURLSSH_AUTH_KEYBOARDCURLSSH_AUTH_AGENTCURLSSH_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 (整數 (int))

一個在需要驗證 SSH 主機金鑰時會被呼叫的 可呼叫物件。該回呼函式必須具有以下簽章:

回呼函數(
    資源 $curlHandle,
    整數 $keyType,
    字串 $key,
    整數 $keyLength
): int
curlHandle
cURL 句柄。
keyType
CURLKHTYPE_* 金鑰類型之一。
key
要檢查的金鑰。
keyLength
金鑰的長度,以位元組為單位。
此回呼函式會覆寫 CURLOPT_SSH_KNOWNHOSTS。從 PHP 8.3.0 和 cURL 7.84.0 開始可用。

CURLOPT_SSH_HOST_PUBLIC_KEY_MD5 (整數)

一個包含 32 個十六進位數字的 字串,其中應包含遠端主機公開金鑰的 MD5 校驗和,除非 md5 校驗和相符,否則 cURL 將拒絕連線到該主機。此選項僅適用於 SCP 和 SFTP 傳輸。從 cURL 7.17.1 開始可用。

CURLOPT_SSH_HOST_PUBLIC_KEY_SHA256 (整數)

一個包含遠端主機公開金鑰的 base64 編碼 SHA256 雜湊值的 字串。如果給定的雜湊值與遠端主機提供的雜湊值不符,則傳輸將會失敗。從 PHP 8.2.0 和 cURL 7.80.0 開始可用。

CURLOPT_SSH_KNOWNHOSTS (整數)

設定為要使用的 known_host 檔案的檔案名稱,該檔案應使用 libssh2 支援的 OpenSSH 檔案格式。從 cURL 7.19.6 開始可用。

CURLOPT_SSH_PRIVATE_KEYFILE (整數)

私鑰的檔案名稱。如果未使用,如果設定了 HOME 環境變數,cURL 預設為 $HOME/.ssh/id_dsa,如果未設定 HOME,則預設為目前目錄中的 id_dsa。如果檔案受密碼保護,請使用 CURLOPT_KEYPASSWD 設定密碼。從 cURL 7.16.1 開始可用。

CURLOPT_SSH_PUBLIC_KEYFILE (整數)

公開金鑰的檔案名稱。如果未使用,如果設定了 HOME 環境變數,cURL 預設為 $HOME/.ssh/id_dsa.pub,如果未設定 HOME,則預設為目前目錄中的 id_dsa.pub。從 cURL 7.16.1 開始可用。

CURLOPT_SSLCERT (整數)

包含 PEM 格式憑證的檔案名稱。從 cURL 7.1.0 開始可用。

CURLOPT_SSLCERTPASSWD (整數)

使用 CURLOPT_SSLCERT 憑證所需的密碼。從 cURL 7.1.0 開始可用,並從 cURL 7.17.0 開始棄用。

CURLOPT_SSLCERTTYPE (整數)

一個格式為憑證格式的 字串。支援的格式有:PEMDERENGP12P12(適用於 PKCS#12 編碼的檔案)自 OpenSSL 0.9.3 起可用。預設為 PEM。自 cURL 7.9.3 起可用。

CURLOPT_SSLCERT_BLOB (整數)

一個包含 SSL 用戶端憑證的 字串。自 PHP 8.1.0 和 cURL 7.71.0 起可用。

CURLOPT_SSLENGINE (整數)

CURLOPT_SSLKEY 中指定的私密 SSL 金鑰的加密引擎的 字串 識別碼。自 cURL 7.9.3 起可用。

CURLOPT_SSLENGINE_DEFAULT (整數)

用於非對稱加密操作的加密引擎的 字串 識別碼。自 cURL 7.9.3 起可用。

CURLOPT_SSLKEY (整數)

包含私密 SSL 金鑰的檔案名稱。自 cURL 7.9.3 起可用。

CURLOPT_SSLKEYPASSWD (整數)

使用 CURLOPT_SSLKEY 中指定的私密 SSL 金鑰所需的密碼。

注意事項:

由於此選項包含敏感密碼,請務必妥善保管包含它的 PHP 指令碼。

自 cURL 7.9.3 起可用,並自 cURL 7.17.0 起棄用。

CURLOPT_SSLKEYTYPE (整數)

CURLOPT_SSLKEY 中指定的私密 SSL 金鑰的金鑰類型。支援的金鑰類型有:PEMDERENG。預設為 PEM。自 cURL 7.9.3 起可用。

CURLOPT_SSLKEY_BLOB (整數)

用戶端憑證的 字串 私密金鑰。自 PHP 8.1.0 和 cURL 7.71.0 起可用。

CURLOPT_SSLVERSION (整數)

CURL_SSLVERSION_* 常數之一。

警告

最好不要設定此選項,並保留預設值。由於 SSLv2 和 SSLv3 中已知的漏洞,將此設定為 CURL_SSLVERSION_SSLv2CURL_SSLVERSION_SSLv3 非常危險。

預設為 CURL_SSLVERSION_DEFAULT。自 cURL 7.1.0 起可用。

CURLOPT_SSL_CIPHER_LIST (整數)

以冒號分隔的 字串,用於 TLS 1.2 (1.1, 1.0) 連線的加密套件。自 cURL 7.9 起可用。

CURLOPT_SSL_EC_CURVES (整數)

以冒號分隔的橢圓曲線演算法列表。例如,X25519:P-521 是一個包含兩個橢圓曲線的有效列表。此選項定義了 SSL 握手過程中客戶端的金鑰交換演算法,如果 cURL 建置的 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 啟用 TLS False Start,false 則停用。TLS False Start 是一種 TLS 用戶端在驗證伺服器 Finished 訊息之前就開始傳送應用程式資料的模式。PHP 7.0.7 和 cURL 7.42.0 起可用。

CURLOPT_SSL_OPTIONS (int)

設定 SSL 行為選項,它是 CURLSSLOPT_* 常數的位元遮罩 (bitmask)。預設情況下,不會設定任何位元。PHP 7.0.7 和 cURL 7.25.0 起可用。

CURLOPT_SSL_SESSIONID_CACHE (int)

設定為 0 可停用 SSL 階段作業 ID 快取,設定為 1 可啟用。預設情況下,所有傳輸都使用啟用快取的方式進行。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 (整數 (int))

接受一個指向檔案控制代碼的 資源 (resource),將錯誤輸出到指定位置,而不是 STDERR。cURL 7.1.0 起可用。

CURLOPT_STREAM_WEIGHT (整數 (int))

設定串流權重值(介於 1256 之間的數字)。PHP 7.0.7 及 cURL 7.46.0 起可用。

CURLOPT_SUPPRESS_CONNECT_HEADERS (整數 (int))

當使用 CURLOPT_HTTPPROXYTUNNEL 並發出 CONNECT 請求時,設為 true 可抑制使用者回呼函式 CURLOPT_HEADERFUNCTIONCURLOPT_WRITEFUNCTION 接收代理伺服器 CONNECT 回應標頭。預設為 false。PHP 7.3.0 及 cURL 7.54.0 起可用。

CURLOPT_TCP_FASTOPEN (整數 (int))

設為 true 以啟用 TCP Fast Open,設為 false 則停用。PHP 7.0.7 及 cURL 7.49.0 起可用。

CURLOPT_TCP_KEEPALIVE (整數 (int))

如果設為 1,將會發送 TCP keepalive 探測。這些探測的延遲和頻率可以通過 CURLOPT_TCP_KEEPIDLECURLOPT_TCP_KEEPINTVL 選項控制,前提是作業系統支援它們。如果設為 0(預設值),則停用 keepalive 探測。最大探測次數可以使用 CURLOPT_TCP_KEEPCNT 選項設定。cURL 7.25.0 起可用。

CURLOPT_TCP_KEEPIDLE (整數 (int))

如果啟用了 CURLOPT_TCP_KEEPALIVE,則設定作業系統在連線閒置時等待多久(以秒為單位)後才發送 keepalive 探測。並非所有作業系統都支援此選項。預設值為 60。cURL 7.25.0 起可用。

CURLOPT_TCP_KEEPINTVL (整數 (int))

如果啟用了 CURLOPT_TCP_KEEPALIVE,則設定作業系統發送 keepalive 探測的間隔時間(以秒為單位)。並非所有作業系統都支援此選項。預設值為 60。cURL 7.25.0 起可用。

CURLOPT_TCP_KEEPCNT (整數 (int))

設定 TCP keep-alive 探測的最大次數。預設值為 9。PHP 8.4.0 及 cURL 8.9.0 起可用。

CURLOPT_TCP_NODELAY (整數 (int))

設為 true 可停用 TCP 的 Nagle 演算法,該演算法會嘗試減少網路上小封包的數量。預設為 true。從 cURL 7.11.2 版開始提供。

CURLOPT_TELNETOPTIONS (整數 (int))

設定一個 陣列 (array)字串 (string) 以傳遞給 telnet 協商。變數應採用 >選項=值< 的格式。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 (整數)

自 1970 年 1 月 1 日起的秒數。此時間將由 CURLOPT_TIMECONDITION 使用。預設值為 0。從 cURL 7.1.0 開始可用。

CURLOPT_TIMEVALUE_LARGE (整數)

自 1970 年 1 月 1 日起的秒數。此時間將由 CURLOPT_TIMECONDITION 使用。預設值為零。此選項與 CURLOPT_TIMEVALUE 的區別在於參數的類型。在「長整數」只有 32 位元的系統上,必須使用此選項來設定 2038 年以後的日期。從 PHP 7.3.0 和 cURL 7.59.0 開始可用。

CURLOPT_TLS13_CIPHERS (整數)

一個 字串,其中包含以冒號分隔的加密套件清單,用於 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 (整數)

設定用於 CURLOPT_TLSAUTH_TYPE 選項指定的 TLS 驗證方法的密碼。需要同時設定 CURLOPT_TLSAUTH_USERNAME 選項。此功能依賴於 TLS SRP,它不適用於 TLS 1.3。從 cURL 7.21.4 開始可用。

CURLOPT_TLSAUTH_TYPE (整數)

設定一個 字串,其中包含 TLS 驗證的方法。支援的方法是 SRP(TLS 安全遠端密碼驗證)。從 cURL 7.21.4 開始可用。

CURLOPT_TLSAUTH_USERNAME (整數)

設定一個 字串,其中包含用於 CURLOPT_TLSAUTH_TYPE 選項指定的 TLS 驗證方法的使用者名稱。需要同時設定 CURLOPT_TLSAUTH_PASSWORD 選項。此功能依賴於 TLS SRP,它不適用於 TLS 1.3。從 cURL 7.21.4 開始可用。

CURLOPT_TRANSFER_ENCODING (整數)

設定為 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 網域通訊端作為連線端點,並將路徑設定為指定的 字串。設定為 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 KB。允許設定的最大緩衝區大小為 2 MB。允許設定的最小緩衝區大小為 16 KB。從 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)

具有以下簽章的 可呼叫 函式

callback(resource $curlHandle, string $data): int
curlHandle
cURL 句柄。
資料
要寫入的資料。
資料必須由回呼函式儲存,且回呼函式必須返回寫入的準確位元組數,否則傳輸將會中止並出現錯誤。從 cURL 7.1.0 版開始提供。

CURLOPT_WRITEHEADER (int)

接受檔案控制代碼 resource,指向要將傳輸的標頭部分寫入的檔案。從 cURL 7.1.0 版開始提供。

CURLOPT_WS_OPTIONS (int)

接受設定 WebSocket 行為選項的位元遮罩。唯一可用的選項是 CURLWS_RAW_MODE。預設值為 0。從 PHP 8.3.0 和 cURL 7.86.0 版開始提供。

CURLOPT_XFERINFOFUNCTION (int)

具有以下簽章的 可呼叫 函式

回呼函數(
    資源 $curlHandle,
    int $bytesToDownload,
    int $bytesDownloaded,
    int $bytesToUpload,
    int $bytesUploaded
): int
curlHandle
cURL 句柄。
bytesToDownload
預期在此次傳輸中下載的總位元組數。
bytesDownloaded
目前已下載的位元組數。
bytesToUpload
預期在此次傳輸中上傳的總位元組數。
bytesUploaded
目前已上傳的位元組數。
返回 1 以中止傳輸並設定 CURLE_ABORTED_BY_CALLBACK 錯誤。從 PHP 8.2.0 和 cURL 7.32.0 版開始提供。

CURLOPT_SERVER_RESPONSE_TIMEOUT (整數)

cURL 等待 FTPSFTPIMAPSCPSMTPPOP3 伺服器回應的逾時時間(以秒為單位)。此選項取代了現有的 CURLOPT_FTP_RESPONSE_TIMEOUT 選項,該選項在 cURL 7.85.0 中已棄用。自 PHP 8.4.0 起可用。

CURLOPT_XOAUTH2_BEARER (整數)

指定 OAuth 2.0 存取權杖。設定為 null 以停用。預設值為 null。自 PHP 7.0.7 和 cURL 7.33.0 起可用。

CURLOPT_PREREQFUNCTION (整數)

一個具有以下簽章的 可呼叫函式,它會在建立連線後、但在發送請求有效負載(例如 HTTP 連線的 GET/POST/DELETE 請求)之前被呼叫,並且可以用於根據來源和目標 IP 位址和埠號來中止或允許連線

回呼函數(
    CurlHandle $curlHandle,
    字串 $destination_ip,
    字串 $local_ip,
    整數 $destination_port,
    整數 $local_port
): int
curlHandle
cURL 句柄。
destination_ip
與此連線建立的遠端伺服器主要 IP。對於 FTP,這是控制連線的 IP。IPv6 位址表示時不帶方括號。
local_ip
此連線的來源 IP。IPv6 位址表示時不帶方括號。
destination_port
與此連線建立的遠端伺服器主要埠號。對於 FTP,這是控制連線的埠。根據通訊協定,這可以是 TCPUDP 埠號。
local_port
此連線的來源埠號。根據通訊協定,這可以是 TCPUDP 埠號。
返回 CURL_PREREQFUNC_OK 以允許請求,或返回 CURL_PREREQFUNC_ABORT 以中止傳輸。自 PHP 8.4.0 和 cURL 7.80.0 起可用。

CURLOPT_DEBUGFUNCTION (整數)

自 PHP 8.4.0 起可用。此選項需要啟用 CURLOPT_VERBOSE 選項。一個 可呼叫函式 來取代標準的 cURL 冗長輸出。此回呼函式會在請求的各個階段被呼叫,並帶有冗長的除錯資訊。回呼函式應符合以下簽章:

callback(CurlHandle $curlHandle, int $type, string $data): void
curlHandle
cURL 句柄。
類型
以下常數之一,指示 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(二進位)資料。
資料
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 (整數) 指定將不再共享的資料類型。從 cURL 7.10.3 版開始提供。
curl_getinfo()
常數 說明
CURLINFO_APPCONNECT_TIME (整數) 從開始到與遠端主機建立 SSL/SSH 連接/握手完成所需的時間(以秒為單位)。
CURLINFO_APPCONNECT_TIME_T (整數) 從開始到與遠端主機建立 SSL/SSH 連接/握手完成所需的時間(以微秒為單位)。從 PHP 7.3.0 和 cURL 7.61.0 版開始提供。
CURLINFO_CAINFO (整數) 預設內建 CA 憑證路徑。從 PHP 8.3.0 和 cURL 7.84.0 版開始提供。
CURLINFO_CAPATH (整數) 預設內建 CA 路徑字串。從 PHP 8.3.0 和 cURL 7.84.0 版開始提供。
CURLINFO_CERTINFO (整數) TLS 憑證鏈。
CURLINFO_CONDITION_UNMET (整數) 未滿足時間條件的資訊。
CURLINFO_CONNECT_TIME (整數) 建立連線所需的時間(以秒為單位)。
CURLINFO_CONNECT_TIME_T (整數) 從開始到與遠端主機(或代理伺服器)的連線完成所需的總時間(以微秒為單位)。從 PHP 7.3.0 和 cURL 7.61.0 版開始提供。
CURLINFO_CONTENT_LENGTH_DOWNLOAD (整數) 下載的內容長度,從 Content-Length: 欄位讀取。
CURLINFO_CONTENT_LENGTH_DOWNLOAD_T (整數) 下載的內容長度。這是從 Content-Length: 欄位讀取的值。如果大小未知,則為 -1。從 PHP 7.3.0 和 cURL 7.55.0 版開始提供。
CURLINFO_CONTENT_LENGTH_UPLOAD (整數) 指定的上传大小。
CURLINFO_CONTENT_LENGTH_UPLOAD_T (整數) 指定的上传大小。如果大小未知,則為 -1。從 PHP 7.3.0 和 cURL 7.55.0 版開始提供。
CURLINFO_CONTENT_TYPE (整數) 所請求文件的 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) 連線失敗的錯誤碼。此數字會因作業系統和系統而異。
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 (整數) Referer 標頭。從 PHP 8.2.0 和 cURL 7.76.0 開始提供。
CURLINFO_REQUEST_SIZE (整數) 已發出請求的總大小,目前僅適用於 HTTP 請求。
CURLINFO_RESPONSE_CODE (整數) 最後一個回應碼。從 cURL 7.10.8 開始提供。
CURLINFO_RETRY_AFTER (整數) 來自 Retry-After 標頭的資訊,如果沒有有效的標頭,則為零。從 PHP 8.2.0 和 cURL 7.66.0 開始提供。
CURLINFO_RTSP_CLIENT_CSEQ (整數) 下一個 RTSP 用戶端 CSeq
CURLINFO_RTSP_CSEQ_RECV (整數) 最近接收到的 CSeq
CURLINFO_RTSP_SERVER_CSEQ (整數) 下一個 RTSP 伺服器 CSeq
CURLINFO_RTSP_SESSION_ID (整數) RTSP 工作階段 ID
CURLINFO_SCHEME (整數) 用於最近連線的 URL 結構描述。從 PHP 7.3.0 和 cURL 7.52.0 開始提供。
CURLINFO_SIZE_DOWNLOAD (整數) 下載的位元組總數
CURLINFO_SIZE_DOWNLOAD_T (整數) 已下載的位元組總數。此數字僅適用於最新的傳輸,並會在每次新的傳輸時重置。從 PHP 7.3.0 和 cURL 7.50.0 開始提供。
CURLINFO_SIZE_UPLOAD (整數) 上傳的位元組總數
CURLINFO_SIZE_UPLOAD_T (整數) 已上傳的位元組總數。從 PHP 7.3.0 和 cURL 7.50.0 開始提供。
CURLINFO_SPEED_DOWNLOAD (整數) 平均下載速度
CURLINFO_SPEED_DOWNLOAD_T (整數) curl 測量整個下載過程的平均下載速度,單位為位元組/秒。從 PHP 7.3.0 和 cURL 7.50.0 開始提供。
CURLINFO_SPEED_UPLOAD (整數) 平均上傳速度
CURLINFO_SPEED_UPLOAD_T (整數) 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)) 被回呼函式中止。一個回呼函式返回了 "abort" 給 libcurl。
CURLE_BAD_CALLING_ORDER (整數 (int))
CURLE_BAD_CONTENT_ENCODING (整數 (int)) 無法識別的傳輸編碼。
CURLE_BAD_DOWNLOAD_RESUME (整數 (int)) 無法繼續下載,因為指定的偏移量超出了檔案邊界。
CURLE_BAD_FUNCTION_ARGUMENT (整數 (int)) 呼叫函式時使用了錯誤的參數。
CURLE_BAD_PASSWORD_ENTERED (整數 (int))
CURLE_COULDNT_CONNECT (整數 (int)) 無法連線到主機或代理伺服器。
CURLE_COULDNT_RESOLVE_HOST (整數 (int)) 無法解析主機。指定的遠端主機無法解析。
CURLE_COULDNT_RESOLVE_PROXY (整數 (int)) 無法解析代理伺服器。指定的代理主機無法解析。
CURLE_FAILED_INIT (整數 (int)) 早期初始化程式碼失敗。這可能是內部錯誤或問題,或者是在初始化時無法完成某些基本操作的資源問題。
CURLE_FILESIZE_EXCEEDED (整數 (int)) 超過最大檔案大小。
CURLE_FILE_COULDNT_READ_FILE (整數 (int)) 無法開啟使用 FILE:// 指定的檔案。最可能的原因是檔案路徑未指向現有的檔案,或是缺少適當的檔案權限。
CURLE_FTP_ACCESS_DENIED (整數 (int))
CURLE_FTP_BAD_DOWNLOAD_RESUME (整數 (int))
CURLE_FTP_CANT_GET_HOST (整數 (int)) 內部查詢新連線所使用的主機時發生錯誤。
CURLE_FTP_CANT_RECONNECT (整數 (int))
CURLE_FTP_COULDNT_GET_SIZE (整數 (int))
CURLE_FTP_COULDNT_RETR_FILE (整數 (int)) 這是對 'RETR' 命令的意外回覆,或是零位元組傳輸完成。
CURLE_FTP_COULDNT_SET_ASCII (整數 (int))
CURLE_FTP_COULDNT_SET_BINARY (整數 (int))
CURLE_FTP_COULDNT_STOR_FILE (整數 (int))
CURLE_FTP_COULDNT_USE_REST (整數 (int)) FTP REST 命令返回錯誤。如果伺服器正常,則不應該發生這種情況。
CURLE_FTP_PARTIAL_FILE (整數 (int))
CURLE_FTP_PORT_FAILED (整數 (int)) FTP PORT 命令返回錯誤。這主要發生在未為 libcurl 指定足夠好的地址時。請參閱 CURLOPT_FTPPORT
CURLE_FTP_QUOTE_ERROR (整數 (int))
CURLE_FTP_SSL_FAILED (整數 (int))
CURLE_FTP_USER_PASSWORD_INCORRECT (整數)
CURLE_FTP_WEIRD_227_FORMAT (整數) FTP 伺服器會以 227 行作為對 PASV 命令的回應。如果 libcurl 無法解析該行,則會傳回此返回碼。
CURLE_FTP_WEIRD_PASS_REPLY (整數) 將 FTP 密碼發送到伺服器後,libcurl 需要正確的回覆。此錯誤碼表示返回了非預期的代碼。
CURLE_FTP_WEIRD_PASV_REPLY (整數) libcurl 無法從伺服器取得合理的結果,以作為對 PASV 或 EPSV 命令的回應。伺服器有缺陷。
CURLE_FTP_WEIRD_SERVER_REPLY (整數) 伺服器傳送了 libcurl 無法解析的數據。從 cURL 7.51.0 開始,此錯誤碼稱為 CURLE_WEIRD_SERVER_REPLY
CURLE_FTP_WEIRD_USER_REPLY (整數)
CURLE_FTP_WRITE_ERROR (整數)
CURLE_FUNCTION_NOT_FOUND (整數) 找不到函式。找不到所需的 zlib 函式。
CURLE_GOT_NOTHING (整數) 伺服器沒有返回任何東西,在這種情況下,沒有返回任何東西被視為錯誤。
CURLE_HTTP_NOT_FOUND (整數)
CURLE_HTTP_PORT_FAILED (整數)
CURLE_HTTP_POST_ERROR (整數) 這是一個奇怪的錯誤,主要由於內部混亂而發生。
CURLE_HTTP_RANGE_ERROR (整數)
CURLE_HTTP_RETURNED_ERROR (整數) 如果 CURLOPT_FAILONERROR 設定為 true 且 HTTP 伺服器返回大於或等於 400 的錯誤碼,則會返回此錯誤。
CURLE_LDAP_CANNOT_BIND (整數) LDAP 無法綁定。LDAP 綁定操作失敗。
CURLE_LDAP_INVALID_URL (整數)
CURLE_LDAP_SEARCH_FAILED (整數) LDAP 搜尋失敗。
CURLE_LIBRARY_NOT_FOUND (整數)
CURLE_MALFORMAT_USER (整數)
CURLE_OBSOLETE (整數)
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 (整數)
CURLE_TOO_MANY_REDIRECTS (整數) 過多的重新導向。libcurl 在追蹤重新導向時達到了上限。可以使用 CURLOPT_MAXREDIRS 設定此限制。
CURLE_UNKNOWN_TELNET_OPTION (整數)
CURLE_UNSUPPORTED_PROTOCOL (整數) 傳遞給 libcurl 的 URL 使用了 libcurl 不支援的協定。問題可能是未使用的編譯時期選項、拼錯的協定字串,或者只是 libcurl 沒有相關程式碼的協定。
CURLE_URL_MALFORMAT (整數) URL 格式不正確。
CURLE_URL_MALFORMAT_USER (整數)
CURLE_WEIRD_SERVER_REPLY (整數) 伺服器傳送了 libcurl 無法解析的資料。在 cURL 7.51.0 之前,此錯誤碼稱為 CURLE_FTP_WEIRD_SERVER_REPLY。從 PHP 7.3.0 和 cURL 7.51.0 開始提供。
CURLE_WRITE_ERROR (整數) 將接收到的資料寫入到本地檔案時發生錯誤,或者從寫入回呼函式傳回了錯誤給 libcurl。
curl_multi_* 狀態常數
常數 說明
CURLM_ADDED_ALREADY (整數) 嘗試將已新增到多重控制碼的簡易控制碼再次新增。從 cURL 7.32.1 開始提供。
CURLM_BAD_EASY_HANDLE (整數) 簡易控制碼不正確/無效。這可能表示它根本不是簡易控制碼,或者該控制碼已被此多重控制碼或其他多重控制碼使用。從 cURL 7.9.6 開始提供。
CURLM_BAD_HANDLE (整數) 傳入的控制碼不是有效的多重控制碼。從 cURL 7.9.6 開始提供。
CURLM_CALL_MULTI_PERFORM (整數) 從 cURL 7.20.0 開始,此常數不再使用。在 cURL 7.20.0 之前,當 curl_multi_select() 或類似函式在 curl_multi_exec() 傳回任何其他常數之前被呼叫時,curl_multi_exec() 可能會傳回此狀態。從 cURL 7.9.6 開始提供。
CURLM_INTERNAL_ERROR (整數) 內部 libcurl 錯誤。從 cURL 7.9.6 開始提供。
CURLM_OK (整數) 沒有錯誤。從 cURL 7.9.6 開始提供。
CURLM_OUT_OF_MEMORY (整數) 處理多個控制代碼時記憶體不足。cURL 7.9.6 版本起可用。
curl_pause()
常數 說明
CURLPAUSE_ALL (整數) 暫停發送和接收資料。cURL 7.18.0 版本起可用。
CURLPAUSE_CONT (整數) 取消暫停發送和接收資料。cURL 7.18.0 版本起可用。
CURLPAUSE_RECV (整數) 暫停接收資料。cURL 7.18.0 版本起可用。
CURLPAUSE_RECV_CONT (整數) 取消暫停接收資料。cURL 7.18.0 版本起可用。
CURLPAUSE_SEND (整數) 暫停發送資料。cURL 7.18.0 版本起可用。
CURLPAUSE_SEND_CONT (整數) 取消暫停發送資料。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"
);
?>
s dot coletta at unidata dot it
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 中遺漏。
uramihsayibok, gmail, com
9 年前
關於 CURLE_OPERATION_TIMEDOUT 與 CURLE_OPERATION_TIMEOUTED

最初 cURL 的常數命名為 TIMEOUTED(讀作「timeout-ed」)。這在 2007 年和 v7.17.0 版本中更改為[1] TIMEDOUT(讀作「timed out」),並且舊常數保留作為別名。

PHP 最初也使用 TIMEOUTED。 TIMEDOUT 常數是在 2012 年的 v5.5.0 版本中添加的[2],而舊的常數則被*保留*。

在我看來,TIMEDOUT 常數更易讀(更不用說技術上來說它是正確的用法),而且只要您使用的是 PHP 5.5+ 版本,它就可用。如果您必須支援舊版本,那麼我建議您繼續使用新的常數,並添加如下 polyfill:

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



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

一旦您停止支援舊版本,就可以移除它。

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