(PHP 4 >= 4.0.2)
curl_setopt -- Set an option for a CURL transfer
Description
bool curl_setopt (int ch, string option, mixed value)
The curl_setopt() function will set options for a CURL session identified by the
ch parameter. The option parameter is the option you want to set,
and the value is the value of the option given by the option.
The value should be a long for the following options (specified in the
option parameter):
-
CURLOPT_INFILESIZE: When you are uploading a file to a remote site, this
option should be used to tell PHP what the expected size of the infile will be.
-
CURLOPT_VERBOSE: Set this option to a non-zero value if you want CURL to
report everything that is happening.
-
CURLOPT_HEADER: Set this option to a non-zero value if you want the header
to be included in the output.
-
CURLOPT_NOPROGRESS: Set this option to a non-zero value if you don't want
PHP to display a progress meter for CURL transfers
Note: PHP automatically sets this option to a non-zero parameter, this should only be
changed for debugging purposes.
-
CURLOPT_NOBODY: Set this option to a non-zero value if you don't want the
body included with the output.
-
CURLOPT_FAILONERROR: Set this option to a non-zero value if you want PHP
to fail silently if the HTTP code returned is greater than 300. The default behavior is to return
the page normally, ignoring the code.
-
CURLOPT_UPLOAD: Set this option to a non-zero value if you want PHP to
prepare for an upload.
-
CURLOPT_POST: Set this option to a non-zero value if you want PHP to do a
regular HTTP POST. This POST is a normal application/x-www-form-urlencoded kind, most commonly used
by HTML forms.
-
CURLOPT_FTPLISTONLY: Set this option to a non-zero value and PHP will just
list the names of an FTP directory.
-
CURLOPT_FTPAPPEND: Set this option to a non-zero value and PHP will append
to the remote file instead of overwriting it.
-
CURLOPT_NETRC: Set this option to a non-zero value and PHP will scan your
~./netrc file to find your username and password for the remote site that you're establishing a
connection with.
-
CURLOPT_FOLLOWLOCATION: Set this option to a non-zero value to follow any
"Location: " header that the server sends as a part of the HTTP header (note this is recursive, PHP
will follow as many "Location: " headers that it is sent.)
-
CURLOPT_PUT: Set this option a non-zero value to HTTP PUT a file. The file
to PUT must be set with the CURLOPT_INFILE and CURLOPT_INFILESIZE.
-
CURLOPT_MUTE: Set this option to a non-zero value and PHP will be
completely silent with regards to the CURL functions.
-
CURLOPT_TIMEOUT: Pass a long as a parameter that contains the maximum
time, in seconds, that you'll allow the curl functions to take.
-
CURLOPT_LOW_SPEED_LIMIT: Pass a long as a parameter that contains the
transfer speed in bytes per second that the transfer should be below during CURLOPT_LOW_SPEED_TIME
seconds for PHP to consider it too slow and abort.
-
CURLOPT_LOW_SPEED_TIME: Pass a long as a parameter that contains the time
in seconds that the transfer should be below the CURLOPT_LOW_SPEED_LIMIT for PHP to consider it too
slow and abort.
-
CURLOPT_RESUME_FROM: Pass a long as a parameter that contains the offset,
in bytes, that you want the transfer to start from.
-
CURLOPT_SSLVERSION: Pass a long as a parameter that contains the SSL
version (2 or 3) to use. By default PHP will try and determine this by itself, although, in some
cases you must set this manually.
-
CURLOPT_SSL_VERIFYHOST: Pass a long if cURL should verify the Common name
of the peer certificate in the SSL handshake. A value of 1 denotes that we should check for the
existence of the common name, a value of 2 denotes that we should make sure it matches the provided
hostname.
-
CURLOPT_TIMECONDITION: Pass a long as a parameter that defines how the
CURLOPT_TIMEVALUE is treated. You can set this parameter to TIMECOND_IFMODSINCE or
TIMECOND_ISUNMODSINCE. This is a HTTP-only feature.
-
CURLOPT_TIMEVALUE: Pass a long as a parameter that is the time in seconds
since January 1st, 1970. The time will be used as specified by the CURLOPT_TIMEVALUE option, or by
default the TIMECOND_IFMODSINCE will be used.
-
CURLOPT_RETURNTRANSFER: Pass a non-zero value if you want cURL to directly
return the transfer instead of printing it out directly.
The value parameter should be a string for the following values of the
option parameter:
-
CURLOPT_URL: This is the URL that you want PHP to fetch. You can also set
this option when initializing a session with the
curl_init() function.
-
CURLOPT_USERPWD: Pass a string formatted in the [username]:[password]
manner, for PHP to use for the connection. connection.
-
CURLOPT_PROXYUSERPWD: Pass a string formatted in the [username]:[password]
format for connection to the HTTP proxy.
-
CURLOPT_RANGE: Pass the specified range you want. It should be in the
"X-Y" format, where X or Y may be left out. The HTTP transfers also support several intervals,
separated with commas as in X-Y,N-M.
-
CURLOPT_POSTFIELDS: Pass a string containing the full data to post in an
HTTP "POST" operation.
-
CURLOPT_REFERER: Pass a string containing the "referer" header to be used
in an HTTP request.
-
CURLOPT_USERAGENT: Pass a string containing the "user-agent" header to be
used in an HTTP request.
-
CURLOPT_FTPPORT: Pass a string containing the which will be used to get
the IP address to use for the ftp "POST" instruction. The POST 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_COOKIE: Pass a string containing the content of the cookie to be
set in the HTTP header.
-
CURLOPT_SSLCERT: Pass a string containing the filename of PEM formatted
certificate.
-
CURLOPT_SSLCERTPASSWD: Pass a string containing the password required to
use the CURLOPT_SSLCERT certificate.
-
CURLOPT_COOKIEFILE: Pass a string containing 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.
-
CURLOPT_CUSTOMREQUEST: Pass a string to be used instead of GET or HEAD
when doing an HTTP request. This is useful for doing DELETE or another, more obscure, HTTP
request.
Note: Don't do this without making sure your server supports the command first.
-
CURLOPT_PROXY: Give the name of the HTTP proxy to tunnel requests
through.
-
CURLOPT_INTERFACE: Pass the name of the outgoing network interface to use.
This can be an interface name, an IP address or a host name.
-
CURLOPT_KRB4LEVEL: Pass the KRB4 (Kerberos 4) security level. This anyone
of the following strings (in order from least powerful, to most powerful): 'clear', 'safe',
'confidential', 'private'. If the string does not match one of these, then 'private' is used. If
you set this to NULL, this disables KB4 security. KB4 security only works with FTP transactions
currently.
-
CURLOPT_HTTPHEADER: Pass an array of HTTP header fields to set.
-
CURLOPT_QUOTE: Pass an array of FTP commands to perform on the server
prior to the FTP request.
-
CURLOPT_POSTQUOTE: Pass an array of FTP commands to execute on the server,
after the FTP request has been performed.
The following options expect a file descriptor that is obtained by using the fopen() function:
-
CURLOPT_FILE: The file where the output of your transfer should be placed,
the default is STDOUT.
-
CURLOPT_INFILE: The file where the input of your transfer comes from.
-
CURLOPT_WRITEHEADER: The file to write the header part of the output
into.
-
CURLOPT_STDERR: The file to write errors to instead of stderr.
|