curl_setopt
Function • Params and return types changed in PHP 8.0
Set an option for a cURL transfer.
curl_setopt Function synopsis
curl_setopt(
CurlHandle $handle,
int $option,
mixed $value
): bool
Parameters
$handle
TypeCurlHandle
$option
Typeint
The CURLOPT_* option to set.
$option accepts one of the following constant values:
CURLINFO_HEADER_OUTCURLOPT_AUTOREFERERCURLOPT_BINARYTRANSFERCURLOPT_CERTINFOCURLOPT_CONNECT_ONLYCURLOPT_COOKIESESSIONCURLOPT_CRLFCURLOPT_DISALLOW_USERNAME_IN_URLCURLOPT_DNS_SHUFFLE_ADDRESSESCURLOPT_DNS_USE_GLOBAL_CACHECURLOPT_FAILONERRORCURLOPT_FILETIMECURLOPT_FOLLOWLOCATIONCURLOPT_FORBID_REUSECURLOPT_FRESH_CONNECTCURLOPT_FTPAPPENDCURLOPT_FTPASCIICURLOPT_FTPLISTONLYCURLOPT_FTP_CREATE_MISSING_DIRSCURLOPT_FTP_USE_EPRTCURLOPT_FTP_USE_EPSVCURLOPT_HAPROXYPROTOCOLCURLOPT_HEADERCURLOPT_HTTP09_ALLOWEDCURLOPT_HTTPGETCURLOPT_HTTPPROXYTUNNELCURLOPT_HTTP_CONTENT_DECODINGCURLOPT_KEEP_SENDING_ON_ERRORCURLOPT_MUTECURLOPT_NETRCCURLOPT_NOBODYCURLOPT_NOPROGRESSCURLOPT_NOSIGNALCURLOPT_PATH_AS_ISCURLOPT_PIPEWAITCURLOPT_POSTCURLOPT_PROXY_SSL_VERIFYPEERCURLOPT_PUTCURLOPT_RETURNTRANSFERCURLOPT_SAFE_UPLOADCURLOPT_SASL_IRCURLOPT_SSH_COMPRESSIONCURLOPT_SSL_ENABLE_ALPNCURLOPT_SSL_ENABLE_NPNCURLOPT_SSL_FALSESTARTCURLOPT_SSL_VERIFYPEERCURLOPT_SSL_VERIFYSTATUSCURLOPT_SUPPRESS_CONNECT_HEADERSCURLOPT_TCP_FASTOPENCURLOPT_TCP_NODELAYCURLOPT_TFTP_NO_OPTIONSCURLOPT_TRANSFERTEXTCURLOPT_UNRESTRICTED_AUTHCURLOPT_UPLOADCURLOPT_VERBOSECURLOPT_BUFFERSIZECURLOPT_CLOSEPOLICYCURLOPT_CONNECTTIMEOUTCURLOPT_CONNECTTIMEOUT_MSCURLOPT_DNS_CACHE_TIMEOUTCURLOPT_EXPECT_100_TIMEOUT_MSCURLOPT_FTPSSLAUTHCURLOPT_FTP_FILEMETHODCURLOPT_HAPPY_EYEBALLS_TIMEOUT_MSCURLOPT_HEADEROPTCURLOPT_HTTPAUTHCURLOPT_HTTP_VERSIONCURLOPT_INFILESIZECURLOPT_IPRESOLVECURLOPT_LOW_SPEED_LIMITCURLOPT_LOW_SPEED_TIMECURLOPT_MAXCONNECTSCURLOPT_MAXREDIRSCURLOPT_MAX_RECV_SPEED_LARGECURLOPT_MAX_SEND_SPEED_LARGECURLOPT_PORTCURLOPT_POSTREDIRCURLOPT_PROTOCOLSCURLOPT_PROXYAUTHCURLOPT_PROXYPORTCURLOPT_PROXYTYPECURLOPT_PROXY_SSLVERSIONCURLOPT_PROXY_SSL_OPTIONSCURLOPT_PROXY_SSL_VERIFYHOSTCURLOPT_REDIR_PROTOCOLSCURLOPT_RESUME_FROMCURLOPT_SOCKS5_AUTHCURLOPT_SSH_AUTH_TYPESCURLOPT_SSLVERSIONCURLOPT_SSL_OPTIONSCURLOPT_SSL_VERIFYHOSTCURLOPT_STREAM_WEIGHTCURLOPT_TCP_KEEPALIVECURLOPT_TCP_KEEPIDLECURLOPT_TCP_KEEPINTVLCURLOPT_TIMECONDITIONCURLOPT_TIMEOUTCURLOPT_TIMEOUT_MSCURLOPT_TIMEVALUECURLOPT_TIMEVALUE_LARGECURLOPT_ABSTRACT_UNIX_SOCKETCURLOPT_CAINFOCURLOPT_CAPATHCURLOPT_COOKIECURLOPT_COOKIEFILECURLOPT_COOKIEJARCURLOPT_COOKIELISTCURLOPT_CUSTOMREQUESTCURLOPT_DEFAULT_PROTOCOLCURLOPT_DNS_INTERFACECURLOPT_DNS_LOCAL_IP4CURLOPT_DNS_LOCAL_IP6CURLOPT_EGDSOCKETCURLOPT_ENCODINGCURLOPT_FTPPORTCURLOPT_INTERFACECURLOPT_KEYPASSWDCURLOPT_KRB4LEVELCURLOPT_LOGIN_OPTIONSCURLOPT_PINNEDPUBLICKEYCURLOPT_POSTFIELDSCURLOPT_PRE_PROXYCURLOPT_PRIVATECURLOPT_PROXYCURLOPT_PROXYUSERPWDCURLOPT_PROXY_CAINFOCURLOPT_PROXY_CAPATHCURLOPT_PROXY_CRLFILECURLOPT_PROXY_KEYPASSWDCURLOPT_PROXY_PINNEDPUBLICKEYCURLOPT_PROXY_SERVICE_NAMECURLOPT_PROXY_SSLCERTCURLOPT_PROXY_SSLCERTTYPECURLOPT_PROXY_SSLKEYCURLOPT_PROXY_SSLKEYTYPECURLOPT_PROXY_SSL_CIPHER_LISTCURLOPT_PROXY_TLS13_CIPHERSCURLOPT_PROXY_TLSAUTH_PASSWORDCURLOPT_PROXY_TLSAUTH_TYPECURLOPT_PROXY_TLSAUTH_USERNAMECURLOPT_RANDOM_FILECURLOPT_RANGECURLOPT_REFERERCURLOPT_SERVICE_NAMECURLOPT_SSH_HOST_PUBLIC_KEY_MD5CURLOPT_SSH_PRIVATE_KEYFILECURLOPT_SSH_PUBLIC_KEYFILECURLOPT_SSLCERTCURLOPT_SSLCERTPASSWDCURLOPT_SSLCERTTYPECURLOPT_SSLENGINECURLOPT_SSLENGINE_DEFAULTCURLOPT_SSLKEYCURLOPT_SSLKEYPASSWDCURLOPT_SSLKEYTYPECURLOPT_SSL_CIPHER_LISTCURLOPT_TLS13_CIPHERSCURLOPT_UNIX_SOCKET_PATHCURLOPT_URLCURLOPT_USERAGENTCURLOPT_USERNAMECURLOPT_USERPWDCURLOPT_XOAUTH2_BEARERCURLOPT_CONNECT_TOCURLOPT_HTTP200ALIASESCURLOPT_HTTPHEADERCURLOPT_POSTQUOTECURLOPT_PROXYHEADERCURLOPT_QUOTECURLOPT_RESOLVECURLOPT_HEADERFUNCTIONCURLOPT_PASSWDFUNCTIONCURLOPT_PROGRESSFUNCTIONCURLOPT_READFUNCTIONCURLOPT_WRITEFUNCTIONCURLOPT_SHARECURLOPT_FILECURLOPT_INFILECURLOPT_STDERRCURLOPT_WRITEHEADERCURLOPT_ACCEPT_ENCODINGCURLOPT_ADDRESS_SCOPECURLOPT_APPENDCURLOPT_CRLFILECURLOPT_DIRLISTONLYCURLOPT_DNS_SERVERSCURLOPT_FTP_ACCOUNTCURLOPT_FTP_ALTERNATIVE_TO_USERCURLOPT_FTP_RESPONSE_TIMEOUTCURLOPT_FTP_SKIP_PASV_IPCURLOPT_FTP_SSLCURLOPT_FTP_SSL_CCCCURLOPT_FTP_USE_PRETCURLOPT_HTTP_TRANSFER_DECODINGCURLOPT_IGNORE_CONTENT_LENGTHCURLOPT_ISSUERCERTCURLOPT_KRBLEVELCURLOPT_LOCALPORTCURLOPT_LOCALPORTRANGECURLOPT_MAIL_FROMCURLOPT_MAIL_RCPTCURLOPT_MAXFILESIZECURLOPT_NETRC_FILECURLOPT_NEW_DIRECTORY_PERMSCURLOPT_NEW_FILE_PERMSCURLOPT_NOPROXYCURLOPT_PASSWORDCURLOPT_PREQUOTECURLOPT_PROXYPASSWORDCURLOPT_PROXYUSERNAMECURLOPT_PROXY_TRANSFER_MODECURLOPT_READDATACURLOPT_REQUEST_TARGETCURLOPT_RTSP_CLIENT_CSEQCURLOPT_RTSP_REQUESTCURLOPT_RTSP_SERVER_CSEQCURLOPT_RTSP_SESSION_IDCURLOPT_RTSP_STREAM_URICURLOPT_RTSP_TRANSPORTCURLOPT_SOCKS5_GSSAPI_NECCURLOPT_SOCKS5_GSSAPI_SERVICECURLOPT_SSH_KNOWNHOSTSCURLOPT_SSL_SESSIONID_CACHECURLOPT_TFTP_BLKSIZECURLOPT_TRANSFER_ENCODINGCURLOPT_USE_SSLCURLOPT_TELNETOPTIONSCURLOPT_FNMATCH_FUNCTIONCURLOPT_WILDCARDMATCHCURLOPT_TLSAUTH_PASSWORDCURLOPT_TLSAUTH_TYPECURLOPT_TLSAUTH_USERNAMECURLOPT_GSSAPI_DELEGATIONCURLOPT_ACCEPTTIMEOUT_MSCURLOPT_MAIL_AUTHCURLOPT_PREREQFUNCTION
$value
Typemixed
The value to be set on $option.
See the description of the
CURLOPT_* constants
for details on the type of values each constant expects.
$value accepts one or a bitmask of the following constant values:
CURLAUTH_ANYCURLAUTH_ANYSAFECURLAUTH_BASICCURLAUTH_BEARERCURLAUTH_DIGESTCURLAUTH_GSSAPICURLAUTH_GSSNEGOTIATECURLAUTH_NEGOTIATECURLAUTH_NTLMCURLAUTH_NTLM_WBCURLSSH_AUTH_AGENTCURLSSH_AUTH_GSSAPICURL_SSLVERSION_DEFAULTCURL_SSLVERSION_MAX_DEFAULTCURL_SSLVERSION_MAX_NONECURL_SSLVERSION_MAX_TLSv1_0CURL_SSLVERSION_MAX_TLSv1_1CURL_SSLVERSION_MAX_TLSv1_2CURL_SSLVERSION_MAX_TLSv1_3CURL_SSLVERSION_SSLv2CURL_SSLVERSION_SSLv3CURL_SSLVERSION_TLSv1CURL_SSLVERSION_TLSv1_0CURL_SSLVERSION_TLSv1_1CURL_SSLVERSION_TLSv1_2CURL_SSLVERSION_TLSv1_3CURLFTPAUTH_DEFAULTCURLFTPAUTH_SSLCURLFTPAUTH_TLSCURLFTPMETHOD_MULTICWDCURLFTPMETHOD_NOCWDCURLFTPMETHOD_SINGLECWDCURLFTPSSL_ALLCURLFTPSSL_CONTROLCURLFTPSSL_NONECURLFTPSSL_TRYCURLFTP_CREATE_DIRCURLFTP_CREATE_DIR_NONECURLFTP_CREATE_DIR_RETRYCURLPROTO_ALLCURLPROTO_DICTCURLPROTO_FILECURLPROTO_FTPCURLPROTO_FTPSCURLPROTO_HTTPSCURLPROTO_LDAPCURLPROTO_LDAPSCURLPROTO_SCPCURLPROTO_SFTPCURLPROTO_SMBCURLPROTO_SMBSCURLPROTO_TELNETCURLPROTO_TFTPCURLPROXY_HTTPCURLPROXY_HTTPSCURLPROXY_HTTP_1_0CURLPROXY_SOCKS4CURLPROXY_SOCKS5CURL_HTTP_VERSION_1_0CURL_HTTP_VERSION_1_1CURL_HTTP_VERSION_2CURL_HTTP_VERSION_2TLSCURL_HTTP_VERSION_2_0CURL_HTTP_VERSION_2_PRIOR_KNOWLEDGECURL_HTTP_VERSION_3CURL_HTTP_VERSION_3ONLYCURL_HTTP_VERSION_NONECURL_IPRESOLVE_V4CURL_IPRESOLVE_V6CURL_IPRESOLVE_WHATEVERCURL_NETRC_IGNOREDCURL_NETRC_OPTIONALCURL_NETRC_REQUIREDCURL_REDIR_POST_301CURL_REDIR_POST_302CURL_REDIR_POST_303CURL_REDIR_POST_ALLCURL_TIMECOND_IFMODSINCECURL_TIMECOND_IFUNMODSINCECURL_TIMECOND_LASTMODCURLCLOSEPOLICY_CALLBACKCURLCLOSEPOLICY_LEAST_RECENTLY_USEDCURLCLOSEPOLICY_LEAST_TRAFFICCURLCLOSEPOLICY_OLDESTCURLCLOSEPOLICY_SLOWESTCURLHEADER_SEPARATECURLHEADER_UNIFIED
Return value
Typebool
Returns true on success, false on failure
Changes to the curl_setopt Function
PHP 8.0
- Return type added:
bool - Parameter name of parameter #1 changed:
$chto$handle - Parameter type added for parameter #1 (
$handle):CurlHandle - Parameter type added for parameter #2 (
$option):int - Parameter type added for parameter #3 (
$value):mixed
curl_setopt(
- $ch,
+ CurlHandle $handle,
- $option,
+ int $option,
- $value
+ mixed $value
- )
+ ): bool curl_setopt Function Availability
curl_setopt Function Availability| PHP Version | Availability |
|---|---|
| PHP 8.6Future Release | Yes |
| PHP 8.5Upcoming Release | Yes |
| PHP 8.4Supported (Latest) | Yes |
| PHP 8.3Supported | Yes |
| PHP 8.2Security-Fixes Only | Yes |
| PHP 8.1Security-Fixes Only | Yes |
| PHP 8.0Unsupported | Yes |
| PHP 7.4Unsupported | Yes |
| PHP 7.3Unsupported | Yes |
| PHP 7.2Unsupported | Yes |
| PHP 7.1Unsupported | Yes |
| PHP 7.0Unsupported | Yes |
| PHP 5.6Unsupported | Yes |
| PHP 5.5Unsupported | Yes |
| PHP 5.4Unsupported | Yes |
| PHP 5.3Unsupported | Yes |