CURLOPT_ABSTRACT_UNIX_SOCKET |
Enables the use of an abstract Unix domain socket instead of
establishing a TCP connection to a host and sets the path to
the given string. This option shares the same semantics
as CURLOPT_UNIX_SOCKET_PATH . These two options
share the same storage and therefore only one of them can be set
per handle.
|
Available since PHP 7.3.0 and cURL 7.53.0
|
CURLOPT_ALTSVC |
Pass the filename for cURL to use as the Alt-Svc cache file to read existing cache contents from and
possibly also write it back to a after a transfer, unless CURLALTSVC_READONLYFILE
is set via CURLOPT_ALTSVC_CTRL .
|
|
CURLOPT_ALTSVC_CTRL |
Populate the bitmask with the correct set of features to instruct cURL how to handle Alt-Svc for the
transfers using this handle. cURL only accepts Alt-Svc headers over HTTPS. It will also only complete
a request to an alternative origin if that origin is properly hosted over HTTPS.
Setting any bit will enable the alt-svc engine. The options are:
CURLALTSVC_H1 ,
CURLALTSVC_H2 ,
CURLALTSVC_H3 , and
CURLALTSVC_READONLYFILE .
|
|
CURLOPT_AWS_SIGV4 |
Provides AWS V4 signature authentication on HTTP(S) header.
This option overrides any other authentication types that have been set in
CURLOPT_HTTPAUTH . This method cannot be combined with other authentication types.
|
|
CURLOPT_CAINFO |
The name of a file holding one or more certificates to verify the
peer with. This only makes sense when used in combination with
CURLOPT_SSL_VERIFYPEER .
|
Might require an absolute path.
|
CURLOPT_CAINFO_BLOB |
The name of a PEM file holding one or more certificates to verify the
peer with. This option overrides CURLOPT_CAINFO .
|
Available as of PHP 8.2.0 and cURL 7.77.0
|
CURLOPT_CAPATH |
A directory that holds multiple CA certificates. Use this option
alongside CURLOPT_SSL_VERIFYPEER .
|
|
CURLOPT_COOKIE |
The contents of the "Cookie: " header to be
used in the HTTP request.
Note that multiple cookies are separated with a semicolon followed
by a space (e.g., "fruit=apple; colour=red ")
|
|
CURLOPT_COOKIEFILE |
The name of the file containing the cookie data. The cookie file can
be in Netscape format, or just plain HTTP-style headers dumped into
a file.
If the name is an empty string, no cookies are loaded, but cookie
handling is still enabled.
|
|
CURLOPT_COOKIEJAR |
The name of a file to save all internal cookies to when the
handle's destructor is called.
Warning
As of PHP 8.0.0, curl_close() is a no-op
and does not destroy the handle.
If cookies need to be written prior to the handle being automatically
destroyed, call unset() on the handle.
|
|
CURLOPT_COOKIELIST |
A cookie string (i.e. a single line in Netscape/Mozilla format, or a regular
HTTP-style Set-Cookie header) adds that single cookie to the internal cookie store.
"ALL" erases all cookies held in memory.
"SESS" erases all session cookies held in memory.
"FLUSH" writes all known cookies to the file specified by CURLOPT_COOKIEJAR .
"RELOAD" loads all cookies from the files specified by CURLOPT_COOKIEFILE .
|
Available since cURL 7.14.1.
|
CURLOPT_CUSTOMREQUEST |
A custom request method to use instead of
"GET" or "HEAD" when doing
a HTTP request. This is useful for doing
"DELETE" or other, more obscure HTTP requests.
Valid values are things like "GET" ,
"POST" , "CONNECT" and so on;
i.e. Do not enter a whole HTTP request line here. For instance,
entering "GET /index.html HTTP/1.0\r\n\r\n"
would be incorrect.
Note:
Don't do this without making sure the server supports the custom
request method first.
|
|
CURLOPT_DEFAULT_PROTOCOL |
The default protocol to use if the URL is missing a scheme name.
|
Added in cURL 7.45.0. Available since PHP 7.0.7.
|
CURLOPT_DNS_INTERFACE |
Set the name of the network interface that the DNS resolver should bind to.
This must be an interface name (not an address).
|
Added in cURL 7.33.0. Available since PHP 7.0.7.
|
CURLOPT_DNS_LOCAL_IP4 |
Set the local IPv4 address that the resolver should bind to. The argument
should contain a single numerical IPv4 address as a string.
|
Added in cURL 7.33.0. Available since PHP 7.0.7.
|
CURLOPT_DNS_LOCAL_IP6 |
Set the local IPv6 address that the resolver should bind to. The argument
should contain a single numerical IPv6 address as a string.
|
Added in cURL 7.33.0. Available since PHP 7.0.7.
|
CURLOPT_EGDSOCKET |
Like CURLOPT_RANDOM_FILE , except a filename
to an Entropy Gathering Daemon socket.
|
|
CURLOPT_ENCODING |
The contents of the "Accept-Encoding: " header.
This enables decoding of the response. Supported encodings are
"identity" , "deflate" , and
"gzip" . If an empty string, "" ,
is set, a header containing all supported encoding types is sent.
|
Added in cURL 7.10.
|
CURLOPT_FTPPORT |
The value which will be used to get the IP address to use
for the FTP "PORT" instruction. The "PORT" instruction tells
the remote server to connect to our specified IP address. The
string may be a plain IP address, a hostname, a network
interface name (under Unix), or just a plain '-' to use the
systems default IP address.
|
|
CURLOPT_HSTS |
HSTS (HTTP Strict Transport Security) cache file name.
|
|
CURLOPT_HSTS_CTRL |
Controls HSTS (HTTP Strict Transport Security) behavior. Populate the bitmask with the correct set of
features to instruct cURL how to handle HSTS for the transfers using this handle.
CURLHSTS_ENABLE enables the in-memory HSTS cache. If the HSTS cache file is defined,
set CURLHSTS_READONLYFILE to make the file read-only.
|
|
CURLOPT_INTERFACE |
The name of the outgoing network interface to use. This can be an
interface name, an IP address or a host name.
|
|
CURLOPT_KEYPASSWD |
The password required to use the CURLOPT_SSLKEY
or CURLOPT_SSH_PRIVATE_KEYFILE private key.
|
Added in cURL 7.16.1.
|
CURLOPT_KRB4LEVEL |
The KRB4 (Kerberos 4) security level. Any of the following values
(in order from least to most powerful) are valid:
"clear" ,
"safe" ,
"confidential" ,
"private". .
If the string does not match one of these,
"private" is used. Setting this option to null
will disable KRB4 security. Currently KRB4 security only works
with FTP transactions.
|
|
CURLOPT_LOGIN_OPTIONS |
Can be used to set protocol specific login options, such as the
preferred authentication mechanism via "AUTH=NTLM" or "AUTH=*",
and should be used in conjunction with the
CURLOPT_USERNAME option.
|
Added in cURL 7.34.0. Available since PHP 7.0.7.
|
CURLOPT_PINNEDPUBLICKEY |
Set the pinned public key.
The string can be the file name of your pinned public key. The file
format expected is "PEM" or "DER". The string can also be any
number of base64 encoded sha256 hashes preceded by "sha256//" and
separated by ";".
|
Added in cURL 7.39.0. Available since PHP 7.0.7.
|
CURLOPT_POSTFIELDS |
The full data to post in a HTTP "POST" operation.
This parameter can either be
passed as a urlencoded string like 'para1=val1¶2=val2&... '
or as an array with the field name as key and field data as value.
If value is an array, the
Content-Type header will be set to
multipart/form-data .
Files can be sent using CURLFile or CURLStringFile,
in which case value must be an array.
|
|
CURLOPT_PRIVATE |
Any data that should be associated with this cURL handle. This data
can subsequently be retrieved with the
CURLINFO_PRIVATE option of
curl_getinfo(). cURL does nothing with this data.
When using a cURL multi handle, this private data is typically a
unique key to identify a standard cURL handle.
|
Added in cURL 7.10.3.
|
CURLOPT_PRE_PROXY |
Set a string holding the host name or dotted numerical
IP address to be used as the preproxy that curl connects to before
it connects to the HTTP(S) proxy specified in the
CURLOPT_PROXY option for the upcoming request.
The preproxy can only be a SOCKS proxy and it should be prefixed with
[scheme]:// to specify which kind of socks is used.
A numerical IPv6 address must be written within [brackets].
Setting the preproxy to an empty string explicitly disables the use of a preproxy.
To specify port number in this string, append :[port]
to the end of the host name. The proxy's port number may optionally be
specified with the separate option CURLOPT_PROXYPORT .
Defaults to using port 1080 for proxies if a port is not specified.
|
Available since PHP 7.3.0 and libcurl >= cURL 7.52.0.
|
CURLOPT_PROXY |
The HTTP proxy to tunnel requests through.
|
|
CURLOPT_PROXY_SERVICE_NAME |
The proxy authentication service name.
|
Added in cURL 7.43.0 for HTTP proxies, and in cURL 7.49.0 for SOCKS5 proxies.
Available since PHP 7.0.7.
|
CURLOPT_PROXY_CAINFO |
The path to proxy Certificate Authority (CA) bundle. Set the path as a
string naming a file holding one or more certificates to
verify the HTTPS proxy with.
This option is for connecting to an HTTPS proxy, not an HTTPS server.
Defaults set to the system path where libcurl's cacert bundle is assumed
to be stored.
|
Available since PHP 7.3.0 and libcurl >= cURL 7.52.0.
|
CURLOPT_PROXY_CAINFO_BLOB |
The name of a PEM file holding one or more certificates to verify the HTTPS proxy with.
This option is for connecting to an HTTPS proxy, not an HTTPS server.
Defaults set to the system path where libcurl's cacert bundle is assumed
to be stored.
|
Available as of PHP 8.2.0 and libcurl >= cURL 7.77.0.
|
CURLOPT_PROXY_CAPATH |
The directory holding multiple CA certificates to verify the HTTPS proxy with.
|
Available since PHP 7.3.0 and libcurl >= cURL 7.52.0.
|
CURLOPT_PROXY_CRLFILE |
Set the file name with the concatenation of CRL (Certificate Revocation List)
in PEM format to use in the certificate validation that occurs during
the SSL exchange.
|
Available since PHP 7.3.0 and libcurl >= cURL 7.52.0.
|
CURLOPT_PROXY_KEYPASSWD |
Set the string be used as the password required to use the
CURLOPT_PROXY_SSLKEY private key. You never needed a
passphrase to load a certificate but you need one to load your private key.
This option is for connecting to an HTTPS proxy, not an HTTPS server.
|
Available since PHP 7.3.0 and libcurl >= cURL 7.52.0.
|
CURLOPT_PROXY_PINNEDPUBLICKEY |
Set the pinned public key for HTTPS proxy. The string can be the file name
of your pinned public key. The file format expected is "PEM" or "DER".
The string can also be any number of base64 encoded sha256 hashes preceded by
"sha256//" and separated by ";"
|
Available since PHP 7.3.0 and libcurl >= cURL 7.52.0.
|
CURLOPT_PROXY_SSLCERT |
The file name of your client certificate used to connect to the HTTPS proxy.
The default format is "P12" on Secure Transport and "PEM" on other engines,
and can be changed with CURLOPT_PROXY_SSLCERTTYPE .
With NSS or Secure Transport, this can also be the nickname of the certificate
you wish to authenticate with as it is named in the security database.
If you want to use a file from the current directory, please precede it with
"./" prefix, in order to avoid confusion with a nickname.
|
Available since PHP 7.3.0 and libcurl >= cURL 7.52.0.
|
CURLOPT_PROXY_SSLCERTTYPE |
The format of your client certificate used when connecting to an HTTPS proxy.
Supported formats are "PEM" and "DER", except with Secure Transport.
OpenSSL (versions 0.9.3 and later) and Secure Transport
(on iOS 5 or later, or OS X 10.7 or later) also support "P12" for
PKCS#12-encoded files. Defaults to "PEM".
|
Available since PHP 7.3.0 and libcurl >= cURL 7.52.0.
|
CURLOPT_PROXY_SSL_CIPHER_LIST |
The list of ciphers to use for the connection to the HTTPS proxy.
The list must be syntactically correct, it consists of one or more cipher
strings separated by colons. Commas or spaces are also acceptable separators
but colons are normally used, !, - and + can be used as operators.
|
Available since PHP 7.3.0 and libcurl >= cURL 7.52.0.
|
CURLOPT_PROXY_TLS13_CIPHERS |
The list of cipher suites to use for the TLS 1.3 connection to a proxy.
The list must be syntactically correct, it consists of one or more
cipher suite strings separated by colons. This option is currently used
only when curl is built to use OpenSSL 1.1.1 or later.
If you are using a different SSL backend you can try setting
TLS 1.3 cipher suites by using the CURLOPT_PROXY_SSL_CIPHER_LIST option.
|
Available since PHP 7.3.0 and libcurl >= cURL 7.61.0. Available when built with OpenSSL >= 1.1.1.
|
CURLOPT_PROXY_SSLKEY |
The file name of your private key used for connecting to the HTTPS proxy.
The default format is "PEM" and can be changed with
CURLOPT_PROXY_SSLKEYTYPE .
(iOS and Mac OS X only) This option is ignored if curl was built against Secure Transport.
|
Available since PHP 7.3.0 and libcurl >= cURL 7.52.0. Available if built TLS enabled.
|
CURLOPT_PROXY_SSLKEYTYPE |
The format of your private key. Supported formats are "PEM", "DER" and "ENG".
|
Available since PHP 7.3.0 and libcurl >= cURL 7.52.0.
|
CURLOPT_PROXY_TLSAUTH_PASSWORD |
The password to use for the TLS authentication method specified with the
CURLOPT_PROXY_TLSAUTH_TYPE option. Requires that the
CURLOPT_PROXY_TLSAUTH_USERNAME option to also be set.
|
Available since PHP 7.3.0 and libcurl >= cURL 7.52.0.
|
CURLOPT_PROXY_TLSAUTH_TYPE |
The method of the TLS authentication used for the HTTPS connection.
Supported method is "SRP" .
Note:
Secure Remote Password (SRP) authentication for TLS provides mutual authentication
if both sides have a shared secret. To use TLS-SRP, you must also set the
CURLOPT_PROXY_TLSAUTH_USERNAME and
CURLOPT_PROXY_TLSAUTH_PASSWORD options.
|
Available since PHP 7.3.0 and libcurl >= cURL 7.52.0.
|
CURLOPT_PROXY_TLSAUTH_USERNAME |
The username to use for the HTTPS proxy TLS authentication method specified with the
CURLOPT_PROXY_TLSAUTH_TYPE option. Requires that the
CURLOPT_PROXY_TLSAUTH_PASSWORD option to also be set.
|
Available since PHP 7.3.0 and libcurl >= cURL 7.52.0.
|
CURLOPT_PROXYUSERPWD |
A username and password formatted as
"[username]:[password]" to use for the
connection to the proxy.
|
|
CURLOPT_RANDOM_FILE |
A filename to be used to seed the random number generator for SSL.
|
|
CURLOPT_RANGE |
Range(s) of data to retrieve in the format
"X-Y" where X or Y are optional. HTTP transfers
also support several intervals, separated with commas in the format
"X-Y,N-M" .
|
|
CURLOPT_REFERER |
The contents of the "Referer: " header to be used
in a HTTP request.
|
|
CURLOPT_SASL_AUTHZID |
The authorization identity (authzid) for the transfer. Only applicable to the PLAIN SASL
authentication mechanism where it is optional. When not specified, only the authentication identity
(authcid) as specified by the username will be sent to the server, along with the password.
The server will derive the authzid from the authcid when not provided, which it will then use internally.
|
|
CURLOPT_SERVICE_NAME |
The authentication service name.
|
Added in cURL 7.43.0. Available since PHP 7.0.7.
|
CURLOPT_SSH_HOST_PUBLIC_KEY_MD5 |
A string containing 32 hexadecimal digits. The string should be the
MD5 checksum of the remote host's public key, and libcurl will reject
the connection to the host unless the md5sums match.
This option is only for SCP and SFTP transfers.
|
Added in cURL 7.17.1.
|
CURLOPT_SSH_HOST_PUBLIC_KEY_SHA256 |
Base64-encoded SHA256 hash of the remote host's public key.
The transfer will fail if the given hash does not match the hash the remote host provides.
|
|
CURLOPT_SSH_PUBLIC_KEYFILE |
The file name for your public key. If not used, libcurl defaults to
$HOME/.ssh/id_dsa.pub if the HOME environment variable is set,
and just "id_dsa.pub" in the current directory if HOME is not set.
|
Added in cURL 7.16.1.
|
CURLOPT_SSH_PRIVATE_KEYFILE |
The file name for your private key. If not used, libcurl defaults to
$HOME/.ssh/id_dsa if the HOME environment variable is set,
and just "id_dsa" in the current directory if HOME is not set.
If the file is password-protected, set the password with
CURLOPT_KEYPASSWD .
|
Added in cURL 7.16.1.
|
CURLOPT_SSL_CIPHER_LIST |
A list of ciphers to use for SSL. For example,
RC4-SHA and TLSv1 are valid
cipher lists.
|
|
CURLOPT_SSL_EC_CURVES |
A colon delimited list of elliptic curve algorithms. For example,
X25519:P-521 is a valid list of two elliptic curves.
This option defines the client's key exchange algorithms in the SSL handshake,
if the SSL backend cURL is built to use supports it.
|
|
CURLOPT_SSLCERT |
The name of a file containing a PEM formatted certificate.
|
|
CURLOPT_SSLCERTPASSWD |
The password required to use the
CURLOPT_SSLCERT certificate.
|
|
CURLOPT_SSLCERTTYPE |
The format of the certificate. Supported formats are
"PEM" (default), "DER" ,
and "ENG" .
As of OpenSSL 0.9.3, "P12" (for PKCS#12-encoded files)
is also supported.
|
Added in cURL 7.9.3.
|
CURLOPT_SSLENGINE |
The identifier for the crypto engine of the private SSL key
specified in CURLOPT_SSLKEY .
|
|
CURLOPT_SSLENGINE_DEFAULT |
The identifier for the crypto engine used for asymmetric crypto
operations.
|
|
CURLOPT_SSLKEY |
The name of a file containing a private SSL key.
|
|
CURLOPT_SSLKEYPASSWD |
The secret password needed to use the private SSL key specified in
CURLOPT_SSLKEY .
Note:
Since this option contains a sensitive password, remember to keep
the PHP script it is contained within safe.
|
|
CURLOPT_SSLKEYTYPE |
The key type of the private SSL key specified in
CURLOPT_SSLKEY . Supported key types are
"PEM" (default), "DER" ,
and "ENG" .
|
|
CURLOPT_TLS13_CIPHERS |
The list of cipher suites to use for the TLS 1.3 connection. The list must be
syntactically correct, it consists of one or more cipher suite strings separated by colons.
This option is currently used only when curl is built to use OpenSSL 1.1.1 or later.
If you are using a different SSL backend you can try setting
TLS 1.3 cipher suites by using the CURLOPT_SSL_CIPHER_LIST option.
|
Available since PHP 7.3.0 and libcurl >= cURL 7.61.0. Available when built with OpenSSL >= 1.1.1.
|
CURLOPT_UNIX_SOCKET_PATH |
Enables the use of Unix domain sockets as connection endpoint and
sets the path to the given string.
|
Added in cURL 7.40.0. Available since PHP 7.0.7.
|
CURLOPT_URL |
The URL to fetch. This can also be set when initializing a
session with curl_init().
|
|
CURLOPT_USERAGENT |
The contents of the "User-Agent: " header to be
used in a HTTP request.
|
|
CURLOPT_USERNAME |
The user name to use in authentication.
|
Added in cURL 7.19.1.
|
CURLOPT_PASSWORD |
The password to use in authentication.
|
Added in cURL 7.19.1.
|
CURLOPT_USERPWD |
A username and password formatted as
"[username]:[password]" to use for the
connection.
|
|
CURLOPT_XOAUTH2_BEARER |
Specifies the OAuth 2.0 access token.
|
Added in cURL 7.33.0. Available since PHP 7.0.7.
|