Linux and UNIX Man Pages

Linux & Unix Commands - Search Man Pages

curl_setopt_array(3) [php man page]

CURL_SETOPT_ARRAY(3)							 1						      CURL_SETOPT_ARRAY(3)

curl_setopt_array - Set multiple options for a cURL transfer

SYNOPSIS
bool curl_setopt_array (resource $ch, array $options) DESCRIPTION
Sets multiple options for a cURL session. This function is useful for setting a large amount of cURL options without repetitively calling curl_setopt(3). PARAMETERS
o $ch -A cURL handle returned by curl_init(3). o $options - An array specifying which options to set and their values. The keys should be valid curl_setopt(3) constants or their integer equivalents. RETURN VALUES
Returns TRUE if all options were successfully set. If an option could not be successfully set, FALSE is immediately returned, ignoring any future options in the $options array. EXAMPLES
Example #1 Initializing a new cURL session and fetching a web page <?php // create a new cURL resource $ch = curl_init(); // set URL and other appropriate options $options = array(CURLOPT_URL => 'http://www.example.com/', CURLOPT_HEADER => false ); curl_setopt_array($ch, $options); // grab URL and pass it to the browser curl_exec($ch); // close cURL resource, and free up system resources curl_close($ch); ?> Prior to PHP 5.1.3 this function can be simulated with: Example #2 Our own implementation of curl_setopt_array(3) <?php if (!function_exists('curl_setopt_array')) { function curl_setopt_array(&$ch, $curl_options) { foreach ($curl_options as $option => $value) { if (!curl_setopt($ch, $option, $value)) { return false; } } return true; } } ?> NOTES
Note As with curl_setopt(3), passing an array to CURLOPT_POST will encode the data as multipart/form-data, while passing a URL-encoded string will encode the data as application/x-www-form-urlencoded. SEE ALSO
curl_setopt(3). PHP Documentation Group CURL_SETOPT_ARRAY(3)

Check Out this Related Man Page

CURL_SETOPT(3)								 1							    CURL_SETOPT(3)

curl_setopt - Set an option for a cURL transfer

SYNOPSIS
bool curl_setopt (resource $ch, int $option, mixed $value) DESCRIPTION
Sets an option on the given cURL session handle. PARAMETERS
o $ch -A cURL handle returned by curl_init(3). o $option - The CURLOPT_XXX option to set. o $value - The value to be set on $option. $value should be a bool for the following values of the $option parameter: +--------------------------------+--------------------------------------+---+ | Option | | | | | | | | | Set $value to | | | | | | | | Notes | | | | | | +--------------------------------+--------------------------------------+---+ | | | | | CURLOPT_AUTOREFERER | | | | | | | | | | | | | TRUE to automatically set the Ref- | | | | erer: field in requests where it | | | | follows a Location: redirect. | | | | | | | | | | | | | | | | | | | CURLOPT_BINARYTRANSFER | | | | | | | | | | | | | TRUE to return the raw output when | | | | CURLOPT_RETURNTRANSFER is used. | | | | | | | | From PHP 5.1.3, this option has no | | | | effect: the raw output will always | | | | be returned when CURLOPT_RETURN- | | | | TRANSFER is used. | | | | | | | | | | | CURLOPT_COOKIESESSION | | | | | | | | | | | | | TRUE to mark this as a new cookie | | | | "session". It will force libcurl to | | | | ignore all cookies it is about to | | | | load that are "session cookies" from | | | | the previous session. By default, | | | | libcurl always stores and loads all | | | | cookies, independent if they are | | | | session cookies or not. Session | | | | cookies are cookies without expiry | | | | date and they are meant to be alive | | | | and existing for this "session" | | | | only. | | | | | | | | | | | | | | | | | | | CURLOPT_CERTINFO | | | | | | | | | | | | | TRUE to output SSL certification | | | | information to STDERR on secure | | | | transfers. | | | | | | | | Added in cURL 7.19.1. Available | | | | since PHP 5.3.2. Requires CUR- | | | | LOPT_VERBOSE to be on to have an | | | | effect. | | | | | | | | | | | CURLOPT_CONNECT_ONLY | | | | | | | | | | | | | TRUE tells the library to perform | | | | all the required proxy authentica- | | | | tion and connection setup, but no | | | | data transfer. This option is imple- | | | | mented for HTTP, SMTP and POP3. | | | | | | | | Added in 7.15.2. Available since | | | | PHP 5.5.0. | | | | | | | | | | | CURLOPT_CRLF | | | | | | | | | | | | | TRUE to convert Unix newlines to | | | | CRLF newlines on transfers. | | | | | | | | | | | | | | | | | | | CURLOPT_DNS_USE_GLOBAL_CACHE | | | | | | | | | | | | | TRUE to use a global DNS cache. This | | | | option is not thread-safe and is | | | | enabled by default. | | | | | | | | | | | | | | | | | | | CURLOPT_FAILONERROR | | | | | | | | | | | | | TRUE to fail verbosely if the HTTP | | | | code returned is greater than or | | | | equal to 400. The default behavior | | | | is to return the page normally, | | | | ignoring the code. | | | | | | | | | | | | | | | | | | | CURLOPT_FILETIME | | | | | | | | | | | | | TRUE to attempt to retrieve the mod- | | | | ification date of the remote docu- | | | | ment. This value can be retrieved | | | | using the $CURLINFO_FILETIME option | | | | with curl_getinfo(3). | | | | | | | | | | | | | | | | | | | CURLOPT_FOLLOWLOCATION | | | | | | | | | | | | | TRUE to follow any "Location: " | | | | header that the server sends as part | | | | of the HTTP header (note this is | | | | recursive, PHP will follow as many | | | | "Location: " headers that it is | | | | sent, unless CURLOPT_MAXREDIRS is | | | | set). | | | | | | | | | | | | | | | | | | | CURLOPT_FORBID_REUSE | | | | | | | | | | | | | TRUE to force the connection to | | | | explicitly close when it has fin- | | | | ished processing, and not be pooled | | | | for reuse. | | | | | | | | | | | | | | | | | | | CURLOPT_FRESH_CONNECT | | | | | | | | | | | | | TRUE to force the use of a new con- | | | | nection instead of a cached one. | | | | | | | | | | | | | | | | | | | CURLOPT_FTP_USE_EPRT | | | | | | | | | | | | | TRUE to use EPRT (and LPRT) when | | | | doing active FTP downloads. Use | | | | FALSE to disable EPRT and LPRT and | | | | use PORT only. | | | | | | | | | | | | | | | | | | | CURLOPT_FTP_USE_EPSV | | | | | | | | | | | | | TRUE to first try an EPSV command | | | | for FTP transfers before reverting | | | | back to PASV. Set to FALSE to dis- | | | | able EPSV. | | | | | | | | | | | | | | | | | | |CURLOPT_FTP_CREATE_MISSING_DIRS | | | | | | | | | | | | | TRUE to create missing directories | | | | when an FTP operation encounters a | | | | path that currently doesn't exist. | | | | | | | | | | | | | | | | | | | CURLOPT_FTPAPPEND | | | | | | | | | | | | | TRUE to append to the remote file | | | | instead of overwriting it. | | | | | | | | | | | | | | | | | | | CURLOPT_TCP_NODELAY | | | | | | | | | | | | | TRUE to disable TCP's Nagle algo- | | | | rithm, which tries to minimize the | | | | number of small packets on the net- | | | | work. | | | | | | | | Available since PHP 5.2.1 for ver- | | | | sions compiled with libcurl 7.11.2 | | | | or greater. | | | | | | | | | | | CURLOPT_FTPASCII | | | | | | | | | An alias of CURLOPT_TRANSFERTEXT. | | | | Use that instead. | | | | | | | | | | | | | | | | | | | CURLOPT_FTPLISTONLY | | | | | | | | | | | | | TRUE to only list the names of an | | | | FTP directory. | | | | | | | | | | | | | | | | | | | CURLOPT_HEADER | | | | | | | | | | | | | TRUE to include the header in the | | | | output. | | | | | | | | | | | | | | | | | | | CURLINFO_HEADER_OUT | | | | | | | | | | | | | TRUE to track the handle's request | | | | string. | | | | | | | | Available since PHP 5.1.3. The | | | | CURLINFO_ prefix is intentional. | | | | | | | | | | | CURLOPT_HTTPGET | | | | | | | | | | | | | TRUE to reset the HTTP request | | | | method to GET. Since GET is the | | | | default, this is only necessary if | | | | the request method has been changed. | | | | | | | | | | | | | | | | | | | CURLOPT_HTTPPROXYTUNNEL | | | | | | | | | | | | | TRUE to tunnel through a given HTTP | | | | proxy. | | | | | | | | | | | | | | | | | | | CURLOPT_MUTE | | | | | | | | | | | | | TRUE to be completely silent with | | | | regards to the cURL functions. | | | | | | | | Removed in cURL 7.15.5 (You can use | | | | CURLOPT_RETURNTRANSFER instead) | | | | | | | | | | | CURLOPT_NETRC | | | | | | | | | | | | | TRUE to scan the ~/.netrc file to | | | | find a username and password for the | | | | remote site that a connection is | | | | being established with. | | | | | | | | | | | | | | | | | | | CURLOPT_NOBODY | | | | | | | | | | | | | TRUE to exclude the body from the | | | | output. Request method is then set | | | | to HEAD. Changing this to FALSE does | | | | not change it to GET. | | | | | | | | | | | | | | | | | | | CURLOPT_NOPROGRESS | | | | | | | | | | | | | TRUE to disable the progress meter | | | | for cURL transfers. | | | | | | | | Note | | | | | | | | | | | | PHP automati- | | | | cally sets this | | | | option to TRUE, | | | | this should | | | | only be changed | | | | for debugging | | | | purposes. | | | | | | | | | | | | | | | | | | | CURLOPT_NOSIGNAL | | | | | | | | | | | | | TRUE to ignore any cURL function | | | | that causes a signal to be sent to | | | | the PHP process. This is turned on | | | | by default in multi-threaded SAPIs | | | | so timeout options can still be | | | | used. | | | | | | | | Added in cURL 7.10. | | | | | | | | | | | CURLOPT_POST | | | | | | | | | | | | | TRUE to do a regular HTTP POST. This | | | | POST is the normal application/x- | | | | www-form-urlencoded kind, most com- | | | | monly used by HTML forms. | | | | | | | | | | | | | | | | | | | CURLOPT_PUT | | | | | | | | | | | | | TRUE to HTTP PUT a file. The file to | | | | PUT must be set with CURLOPT_INFILE | | | | and CURLOPT_INFILESIZE. | | | | | | | | | | | | | | | | | | | CURLOPT_RETURNTRANSFER | | | | | | | | | | | | | TRUE to return the transfer as a | | | | string of the return value of | | | | curl_exec(3) instead of outputting | | | | it out directly. | | | | | | | | | | | | | | | | | | | CURLOPT_SAFE_UPLOAD | | | | | | | | | | | | | TRUE to disable support for the @ | | | | prefix for uploading files in CUR- | | | | LOPT_POSTFIELDS, which means that | | | | values starting with @ can be safely | | | | passed as fields. CURLFile may be | | | | used for uploads instead. | | | | | | | | Added in PHP 5.5.0 with FALSE as | | | | the default value. PHP 5.6.0 changes | | | | the default value to TRUE. | | | | | | | | | | | CURLOPT_SSL_VERIFYPEER | | | | | | | | | | | | | FALSE to stop cURL from verifying | | | | the peer's certificate. Alternate | | | | certificates to verify against can | | | | be specified with the CURLOPT_CAINFO | | | | option or a certificate directory | | | | can be specified with the CUR- | | | | LOPT_CAPATH option. | | | | | | | | | | | | TRUE by default as of cURL 7.10. | | | | Default bundle installed as of cURL | | | | 7.10. | | | | | | | | | | | CURLOPT_TRANSFERTEXT | | | | | | | | | | | | | TRUE to use ASCII mode for FTP | | | | transfers. For LDAP, it retrieves | | | | data in plain text instead of HTML. | | | | On Windows systems, it will not set | | | | STDOUT to binary mode. | | | | | | | | | | | | | | | | | | | CURLOPT_UNRESTRICTED_AUTH | | | | | | | | | | | | | TRUE to keep sending the username | | | | and password when following loca- | | | | tions (using CURLOPT_FOLLOWLOCA- | | | | TION), even when the hostname has | | | | changed. | | | | | | | | | | | | | | | | | | | CURLOPT_UPLOAD | | | | | | | | | | | | | TRUE to prepare for an upload. | | | | | | | | | | | | | | | | | | | CURLOPT_VERBOSE | | | | | | | | | | | | | TRUE to output verbose information. | | | | Writes output to STDERR, or the file | | | | specified using CURLOPT_STDERR. | | | | | | | | | | | | | | +--------------------------------+--------------------------------------+---+ $value should be an integer for the following values of the $option parameter: +-----------------------------+--------------------------------------+---+ | Option | | | | | | | | | Set $value to | | | | | | | | Notes | | | | | | +-----------------------------+--------------------------------------+---+ | | | | | CURLOPT_BUFFERSIZE | | | | | | | | | The size of the buffer to use for | | | | each read. There is no guarantee | | | | this request will be fulfilled, how- | | | | ever. | | | | | | | | Added in cURL 7.10. | | | | | | | | | | | CURLOPT_CLOSEPOLICY | | | | | | | | | One of the CURLCLOSEPOLICY_* val- | | | | ues. | | | | | | | | Note | | | | | | | | | | | | This option is | | | | deprecated, as | | | | it was never | | | | implemented in | | | | cURL and never | | | | had any effect. | | | | | | | | Removed in PHP 5.6.0. | | | | | | | | | | | CURLOPT_CONNECTTIMEOUT | | | | | | | | | The number of seconds to wait while | | | | trying to connect. Use 0 to wait | | | | indefinitely. | | | | | | | | | | | | | | | | | | | CURLOPT_CONNECTTIMEOUT_MS | | | | | | | | | The number of milliseconds to wait | | | | while trying to connect. Use 0 to | | | | wait indefinitely. If libcurl is | | | | built to use the standard system | | | | name resolver, that portion of the | | | | connect will still use full-second | | | | resolution for timeouts with a mini- | | | | mum timeout allowed of one second. | | | | | | | | Added in cURL 7.16.2. Available | | | | since PHP 5.2.3. | | | | | | | | | | | CURLOPT_DNS_CACHE_TIMEOUT | | | | | | | | | The number of seconds to keep DNS | | | | entries in memory. This option is | | | | set to 120 (2 minutes) by default. | | | | | | | | | | | | | | | | | | | CURLOPT_FTPSSLAUTH | | | | | | | | | The FTP authentication method (when | | | | is activated): CURLFTPAUTH_SSL (try | | | | SSL first), CURLFTPAUTH_TLS (try TLS | | | | first), or CURLFTPAUTH_DEFAULT (let | | | | cURL decide). | | | | | | | | Added in cURL 7.12.2. | | | | | | | | | | | CURLOPT_HTTP_VERSION | | | | | | | | | $CURL_HTTP_VERSION_NONE (default, | | | | lets CURL decide which version to | | | | use), $CURL_HTTP_VERSION_1_0 (forces | | | | HTTP/1.0), or $CURL_HTTP_VERSION_1_1 | | | | (forces HTTP/1.1). | | | | | | | | | | | | | | | | | | | CURLOPT_HTTPAUTH | | | | | | | | | The HTTP authentication method(s) | | | | to use. The options are: | | | | $CURLAUTH_BASIC, $CURLAUTH_DIGEST, | | | | $CURLAUTH_GSSNEGOTIATE, | | | | $CURLAUTH_NTLM, $CURLAUTH_ANY, and | | | | $CURLAUTH_ANYSAFE. The bitwise | | | | | (or) operator can be used to combine | | | | more than one method. If this is | | | | done, cURL will poll the server to | | | | see what methods it supports and | | | | pick the best one. $CURLAUTH_ANY is | | | | an alias for CURLAUTH_BASIC | | | | | CURLAUTH_DIGEST | CURLAUTH_GSSNEGO- | | | | TIATE | CURLAUTH_NTLM. | | | | $CURLAUTH_ANYSAFE is an alias for | | | | CURLAUTH_DIGEST | CURLAUTH_GSSNEGO- | | | | TIATE | CURLAUTH_NTLM. | | | | | | | | | | | | | | | | | | | CURLOPT_INFILESIZE | | | | | | | | | The expected size, in bytes, of the | | | | file when uploading a file to a | | | | remote site. Note that using this | | | | option will not stop libcurl from | | | | sending more data, as exactly what | | | | is sent depends on CURLOPT_READFUNC- | | | | TION. | | | | | | | | | | | | | | | | | | | CURLOPT_LOW_SPEED_LIMIT | | | | | | | | | The transfer speed, in bytes per | | | | second, that the transfer should be | | | | below during the count of CUR- | | | | LOPT_LOW_SPEED_TIME seconds before | | | | PHP considers the transfer too slow | | | | and aborts. | | | | | | | | | | | | | | | | | | | CURLOPT_LOW_SPEED_TIME | | | | | | | | | The number of seconds the transfer | | | | speed should be below CUR- | | | | LOPT_LOW_SPEED_LIMIT before PHP con- | | | | siders the transfer too slow and | | | | aborts. | | | | | | | | | | | | | | | | | | | CURLOPT_MAXCONNECTS | | | | | | | | | The maximum amount of persistent | | | | connections that are allowed. When | | | | the limit is reached, CURLOPT_CLOSE- | | | | POLICY is used to determine which | | | | connection to close. | | | | | | | | | | | | | | | | | | | CURLOPT_MAXREDIRS | | | | | | | | | The maximum amount of HTTP redirec- | | | | tions to follow. Use this option | | | | alongside CURLOPT_FOLLOWLOCATION. | | | | | | | | | | | | | | | | | | | CURLOPT_PORT | | | | | | | | | An alternative port number to con- | | | | nect to. | | | | | | | | | | | | | | | | | | | CURLOPT_POSTREDIR | | | | | | | | | A bitmask of 1 (301 Moved Perma- | | | | nently), 2 (302 Found) and 4 (303 | | | | See Other) if the HTTP POST method | | | | should be maintained when CUR- | | | | LOPT_FOLLOWLOCATION is set and a | | | | specific type of redirect occurs. | | | | | | | | Added in cURL 7.19.1. Available | | | | since PHP 5.3.2. | | | | | | | | | | | CURLOPT_PROTOCOLS | | | | | | | | | Bitmask of CURLPROTO_* values. If | | | | used, this bitmask limits what pro- | | | | tocols libcurl may use in the trans- | | | | fer. This allows you to have a | | | | libcurl built to support a wide | | | | range of protocols but still limit | | | | specific transfers to only be | | | | allowed to use a subset of them. By | | | | default libcurl will accept all pro- | | | | tocols it supports. See also CUR- | | | | LOPT_REDIR_PROTOCOLS. Valid proto- | | | | col options are: $CURLPROTO_HTTP, | | | | $CURLPROTO_HTTPS, $CURLPROTO_FTP, | | | | $CURLPROTO_FTPS, $CURLPROTO_SCP, | | | | $CURLPROTO_SFTP, $CURLPROTO_TELNET, | | | | $CURLPROTO_LDAP, $CURLPROTO_LDAPS, | | | | $CURLPROTO_DICT, $CURLPROTO_FILE, | | | | $CURLPROTO_TFTP, $CURLPROTO_ALL | | | | | | | | Added in cURL 7.19.4. | | | | | | | | | | | CURLOPT_PROXYAUTH | | | | | | | | | The HTTP authentication method(s) | | | | to use for the proxy connection. Use | | | | the same bitmasks as described in | | | | CURLOPT_HTTPAUTH. For proxy authen- | | | | tication, only $CURLAUTH_BASIC and | | | | $CURLAUTH_NTLM are currently sup- | | | | ported. | | | | | | | | Added in cURL 7.10.7. | | | | | | | | | | | CURLOPT_PROXYPORT | | | | | | | | | The port number of the proxy to | | | | connect to. This port number can | | | | also be set in CURLOPT_PROXY. | | | | | | | | | | | | | | | | | | | CURLOPT_PROXYTYPE | | | | | | | | | Either $CURLPROXY_HTTP (default) or | | | | $CURLPROXY_SOCKS5. | | | | | | | | Added in cURL 7.10. | | | | | | | | | | | CURLOPT_REDIR_PROTOCOLS | | | | | | | | | Bitmask of CURLPROTO_* values. If | | | | used, this bitmask limits what pro- | | | | tocols libcurl may use in a transfer | | | | that it follows to in a redirect | | | | when CURLOPT_FOLLOWLOCATION is | | | | enabled. This allows you to limit | | | | specific transfers to only be | | | | allowed to use a subset of protocols | | | | in redirections. By default libcurl | | | | will allow all protocols except for | | | | FILE and SCP. This is a difference | | | | compared to pre-7.19.4 versions | | | | which unconditionally would follow | | | | to all protocols supported. See also | | | | CURLOPT_PROTOCOLS for protocol con- | | | | stant values. | | | | | | | | Added in cURL 7.19.4. | | | | | | | | | | | CURLOPT_RESUME_FROM | | | | | | | | | The offset, in bytes, to resume a | | | | transfer from. | | | | | | | | | | | | | | | | | | | CURLOPT_SSL_VERIFYHOST | | | | | | | | | 1 to check the existence of a com- | | | | mon name in the SSL peer certifi- | | | | cate. 2 to check the existence of a | | | | common name and also verify that it | | | | matches the hostname provided. In | | | | production environments the value of | | | | this option should be kept at 2 | | | | (default value). | | | | | | | | Support for value 1 removed in cURL | | | | 7.28.1 | | | | | | | | | | | CURLOPT_SSLVERSION | | | | | | | | | One of CURL_SSLVERSION_DEFAULT (0), | | | | CURL_SSLVERSION_TLSv1 (1), | | | | CURL_SSLVERSION_SSLv2 (2), | | | | CURL_SSLVERSION_SSLv3 (3), | | | | CURL_SSLVERSION_TLSv1_0 (4), | | | | CURL_SSLVERSION_TLSv1_1 (5) or | | | | CURL_SSLVERSION_TLSv1_2 (6). | | | | | | | | Note | | | | | | | | | | | | Your best bet | | | | is to not set | | | | this and let it | | | | use the | | | | default. Set- | | | | ting it to 2 or | | | | 3 is very dan- | | | | gerous given | | | | the known vul- | | | | nerabilities in | | | | SSLv2 and | | | | SSLv3. | | | | | | | | | | | | | | | | | | | CURLOPT_TIMECONDITION | | | | | | | | | How CURLOPT_TIMEVALUE is treated. | | | | Use $CURL_TIMECOND_IFMODSINCE to | | | | return the page only if it has been | | | | modified since the time specified in | | | | CURLOPT_TIMEVALUE. If it hasn't been | | | | modified, a "304 Not Modified" | | | | header will be returned assuming | | | | CURLOPT_HEADER is TRUE. Use | | | | $CURL_TIMECOND_IFUNMODSINCE for the | | | | reverse effect. $CURL_TIME- | | | | COND_IFMODSINCE is the default. | | | | | | | | | | | | | | | | | | | CURLOPT_TIMEOUT | | | | | | | | | The maximum number of seconds to | | | | allow cURL functions to execute. | | | | | | | | | | | | | | | | | | | CURLOPT_TIMEOUT_MS | | | | | | | | | The maximum number of milliseconds | | | | to allow cURL functions to execute. | | | | If libcurl is built to use the stan- | | | | dard system name resolver, that por- | | | | tion of the connect will still use | | | | full-second resolution for timeouts | | | | with a minimum timeout allowed of | | | | one second. | | | | | | | | Added in cURL 7.16.2. Available | | | | since PHP 5.2.3. | | | | | | | | | | | CURLOPT_TIMEVALUE | | | | | | | | | The time in seconds since January | | | | 1st, 1970. The time will be used by | | | | CURLOPT_TIMECONDITION. By default, | | | | $CURL_TIMECOND_IFMODSINCE is used. | | | | | | | | | | | | | | | | | | |CURLOPT_MAX_RECV_SPEED_LARGE | | | | | | | | | If a download exceeds this speed | | | | (counted in bytes per second) on | | | | cumulative average during the trans- | | | | fer, the transfer will pause to keep | | | | the average rate less than or equal | | | | to the parameter value. Defaults to | | | | unlimited speed. | | | | | | | | Added in cURL 7.15.5. Available | | | | since PHP 5.4.0. | | | | | | | | | | |CURLOPT_MAX_SEND_SPEED_LARGE | | | | | | | | | If an upload exceeds this speed | | | | (counted in bytes per second) on | | | | cumulative average during the trans- | | | | fer, the transfer will pause to keep | | | | the average rate less than or equal | | | | to the parameter value. Defaults to | | | | unlimited speed. | | | | | | | | Added in cURL 7.15.5. Available | | | | since PHP 5.4.0. | | | | | | | | | | | CURLOPT_SSH_AUTH_TYPES | | | | | | | | | A bitmask consisting of one or more | | | | of CURLSSH_AUTH_PUBLICKEY, | | | | CURLSSH_AUTH_PASSWORD, | | | | CURLSSH_AUTH_HOST, CURLSSH_AUTH_KEY- | | | | BOARD. Set to CURLSSH_AUTH_ANY to | | | | let libcurl pick one. | | | | | | | | Added in cURL 7.16.1. | | | | | | | | | | | CURLOPT_IPRESOLVE | | | | | | | | | Allows an application to select | | | | what kind of IP addresses to use | | | | when resolving host names. This is | | | | only interesting when using host | | | | names that resolve addresses using | | | | more than one version of IP, possi- | | | | ble values are CURL_IPRESOLVE_WHAT- | | | | EVER, CURL_IPRESOLVE_V4, CURL_IPRE- | | | | SOLVE_V6, by default CURL_IPRE- | | | | SOLVE_WHATEVER. | | | | | | | | Added in cURL 7.10.8. | | | | | | +-----------------------------+--------------------------------------+---+ $value should be a string for the following values of the $option parameter: +--------------------------------+------------------------------------------+---+ | Option | | | | | | | | | Set $value to | | | | | | | | Notes | | | | | | +--------------------------------+------------------------------------------+---+ | | | | | 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 CUR- | | | | LOPT_SSL_VERIFYPEER. | | | | | | | | Requires absolute path. | | | | | | | | | | | CURLOPT_CAPATH | | | | | | | | | A directory that holds multiple CA | | | | certificates. Use this option along- | | | | side 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 fol- | | | | lowed 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 | | | | is closed, e.g. after a call to | | | | curl_close. | | | | | | | | | | | | | | | | | | | 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", "CON- | | | | NECT" and so on; i.e. Do not enter a | | | | whole HTTP request line here. For | | | | instance, entering "GET /index.html | | | | HTTP/1.0 " would be incor- | | | | rect. | | | | | | | | Note | | | | | | | | | | | | Don't do this | | | | without making | | | | sure the server | | | | supports the | | | | custom request | | | | method first. | | | | | | | | | | | | | | | | | | | CURLOPT_EGDSOCKET | | | | | | | | | Like CURLOPT_RANDOM_FILE, except a | | | | filename to an Entropy Gathering | | | | Daemon socket. | | | | | | | | | | | | | | | | | | | CURLOPT_ENCODING | | | | | | | | | The contents of the "Accept-Encod- | | | | ing: " header. This enables decoding | | | | of the response. Supported encodings | | | | are "identity", "deflate", and | | | | "gzip". If an empty string, "", is | | | | set, a header containing all sup- | | | | ported 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_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_PRI- | | | | VATE_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 power- | | | | ful) 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_POSTFIELDS | | | | | | | | | | | | | | | | | The full data to post | | | | in a HTTP "POST" oper- | | | | ation. To post a file, | | | | prepend a filename | | | | with @ and use the | | | | full path. The file- | | | | type can be explicitly | | | | specified by following | | | | the filename with the | | | | type in the format ' | | | | ;type=mimetype'. This | | | | parameter can either | | | | be passed as a urlen- | | | | coded string like ' | | | | para1=val1&para2=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. | | | | | | | | As of PHP 5.2.0, | | | | $value must be an | | | | array if files are | | | | passed to this option | | | | with the @ prefix. | | | | | | | | As of PHP 5.5.0, the | | | | @ prefix is deprecated | | | | and files can be sent | | | | using CURLFile. The @ | | | | prefix can be disabled | | | | for safe passing of | | | | values beginning with | | | | @ by setting the CUR- | | | | LOPT_SAFE_UPLOAD | | | | option to TRUE. | | | | | | | | | | | | | | | | | | | CURLOPT_PROXY | | | | | | | | | The HTTP proxy to tunnel requests | | | | through. | | | | | | | | | | | | | | | | | | | 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 ran- | | | | dom 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_SSH_HOST_PUBLIC_KEY_MD5 | | | | | | | | | A string containing 32 hexadecimal dig- | | | | its. The string should be the MD5 check- | | | | sum 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 trans- | | | | fers. | | | | | | | | Added in cURL 7.17.1. | | | | | | | | | | | 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 envi- | | | | ronment 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 environ- | | | | ment 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_SSLCERT | | | | | | | | | The name of a file containing a PEM | | | | formatted certificate. | | | | | | | | | | | | | | | | | | | CURLOPT_SSLCERTPASSWD | | | | | | | | | The password required to use the CUR- | | | | LOPT_SSLCERT certificate. | | | | | | | | | | | | | | | | | | | CURLOPT_SSLCERTTYPE | | | | | | | | | The format of the certificate. Sup- | | | | ported formats are "PEM" (default), | | | | "DER", and "ENG". | | | | | | | | Added in cURL 7.9.3. | | | | | | | | | | | CURLOPT_SSLENGINE | | | | | | | | | The identifier for the crypto engine of | | | | the private SSL key specified in CUR- | | | | LOPT_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 CUR- | | | | LOPT_SSLKEY. | | | | | | | | Note | | | | | | | | | | | | Since this option | | | | contains a sensi- | | | | tive 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_URL | | | | | | | | | The URL to fetch. This can also be set | | | | when initializing a session with | | | | curl_init(3). | | | | | | | | | | | | | | | | | | | CURLOPT_USERAGENT | | | | | | | | | The contents of the "User-Agent: " | | | | header to be used in a HTTP request. | | | | | | | | | | | | | | | | | | | CURLOPT_USERPWD | | | | | | | | | A username and password formatted as | | | | "[username]:[password]" to use for the | | | | connection. | | | | | | | | | | | | | | +--------------------------------+------------------------------------------+---+ $value should be an array for the following values of the $option parameter: +-----------------------+--------------------------------------+---+ | Option | | | | | | | | | Set $value to | | | | | | | | Notes | | | | | | +-----------------------+--------------------------------------+---+ | | | | |CURLOPT_HTTP200ALIASES | | | | | | | | | An array of HTTP 200 responses that | | | | will be treated as valid responses | | | | and not as errors. | | | | | | | | Added in cURL 7.10.3. | | | | | | | | | | | CURLOPT_HTTPHEADER | | | | | | | | | An array of HTTP header fields to | | | | set, in the format array('Content- | | | | type: text/plain', 'Content-length: | | | | 100') | | | | | | | | | | | | | | | | | | | CURLOPT_POSTQUOTE | | | | | | | | | An array of FTP commands to execute | | | | on the server after the FTP request | | | | has been performed. | | | | | | | | | | | | | | | | | | | CURLOPT_QUOTE | | | | | | | | | An array of FTP commands to execute | | | | on the server prior to the FTP | | | | request. | | | | | | | | | | | | | | +-----------------------+--------------------------------------+---+ $value should be a stream resource (using fopen(3), for example) for the following values of the $option parameter: +--------------------+--------------------------------------+---+ | Option | | | | | | | | | Set $value to | | | | | | +--------------------+--------------------------------------+---+ | | | | | CURLOPT_FILE | | | | | | | | | The file that the transfer should | | | | be written to. The default is STDOUT | | | | (the browser window). | | | | | | | | | | | CURLOPT_INFILE | | | | | | | | | The file that the transfer should | | | | be read from when uploading. | | | | | | | | | | | CURLOPT_STDERR | | | | | | | | | An alternative location to output | | | | errors to instead of STDERR. | | | | | | | | | | |CURLOPT_WRITEHEADER | | | | | | | | | The file that the header part of | | | | the transfer is written to. | | | | | | +--------------------+--------------------------------------+---+ $value should be the name of a valid function or a Closure for the following values of the $option parameter: +-------------------------+--------------------------------------+---+ | Option | | | | | | | | | Set $value to | | | | | | +-------------------------+--------------------------------------+---+ | | | | | CURLOPT_HEADERFUNCTION | | | | | | | | | A callback accepting two parame- | | | | ters. The first is the cURL | | | | resource, the second is a string | | | | with the header data to be written. | | | | The header data must be written by | | | | this callback. Return the number of | | | | bytes written. | | | | | | | | | | | CURLOPT_PASSWDFUNCTION | | | | | | | | | A callback accepting three parame- | | | | ters. The first is the cURL | | | | resource, the second is a string | | | | containing a password prompt, and | | | | the third is the maximum password | | | | length. Return the string containing | | | | the password. | | | | | | | | | | |CURLOPT_PROGRESSFUNCTION | | | | | | | | | A callback accepting five parame- | | | | ters. The first is the cURL | | | | resource, the second is the total | | | | number of bytes expected to be down- | | | | loaded in this transfer, the third | | | | is the number of bytes downloaded so | | | | far, the fourth is the total number | | | | of bytes expected to be uploaded in | | | | this transfer, and the fifth is the | | | | number of bytes uploaded so far. | | | | | | | | Note | | | | | | | | | | | | The callback | | | | is only called | | | | when the CUR- | | | | LOPT_NOPROGRESS | | | | option is set | | | | to FALSE. | | | | | | | | Return a non-zero | | | | value to abort the | | | | transfer. In which | | | | case, the transfer | | | | will set a | | | | CURLE_ABORTED_BY_CALL- | | | | BACK error. | | | | | | | | | | | CURLOPT_READFUNCTION | | | | | | | | | A callback accepting three parame- | | | | ters. The first is the cURL | | | | resource, the second is a stream | | | | resource provided to cURL through | | | | the option CURLOPT_INFILE, and the | | | | third is the maximum amount of data | | | | to be read. The callback must return | | | | a string with a length equal or | | | | smaller than the amount of data | | | | requested, typically by reading it | | | | from the passed stream resource. It | | | | should return an empty string to | | | | signal EOF. | | | | | | | | | | | CURLOPT_WRITEFUNCTION | | | | | | | | | A callback accepting two parame- | | | | ters. The first is the cURL | | | | resource, and the second is a string | | | | with the data to be written. The | | | | data must be saved by this callback. | | | | It must return the exact number of | | | | bytes written or the transfer will | | | | be aborted with an error. | | | | | | +-------------------------+--------------------------------------+---+ Other values: +--------------+--------------------------------------+---+ | Option | | | | | | | | | Set $value to | | | | | | +--------------+--------------------------------------+---+ | | | | |CURLOPT_SHARE | | | | | | | | | A result of curl_share_init(3). | | | | Makes the cURL handle to use the | | | | data from the shared handle. | | | | | | +--------------+--------------------------------------+---+ RETURN VALUES
Returns TRUE on success or FALSE on failure. CHANGELOG
+--------+---------------------------------------------------+ |Version | | | | | | | Description | | | | +--------+---------------------------------------------------+ | 5.6.0 | | | | | | | | | | CURL_SAFE_UPLOAD is now TRUE by default. | | | | | 5.6.0 | | | | | | | Removed CURLOPT_CLOSEPOLICY and associated val- | | | ues. | | | | | 5.5.0 | | | | | | | Added the cURL resource as the first argument to | | | the CURLOPT_PROGRESSFUNCTION callback. | | | | | 5.5.0 | | | | | | | Introduced CURLOPT_SHARE. | | | | | 5.3.0 | | | | | | | Introduced CURLOPT_PROGRESSFUNCTION. | | | | |5.2.10 | | | | | | | Introduced CURLOPT_PROTOCOLS, and CUR- | | | LOPT_REDIR_PROTOCOLS. | | | | | 5.1.0 | | | | | | | Introduced CURLOPT_AUTOREFERER, CURLOPT_BINARY- | | | TRANSFER, CURLOPT_FTPSSLAUTH, CURLOPT_PROXYAUTH, | | | and CURLOPT_TIMECONDITION. | | | | | 5.0.0 | | | | | | | Introduced CURLOPT_FTP_USE_EPRT, CURLOPT_NOSIG- | | | NAL, CURLOPT_UNRESTRICTED_AUTH, CURLOPT_BUFFER- | | | SIZE, CURLOPT_HTTPAUTH, CURLOPT_PROXYPORT, CUR- | | | LOPT_PROXYTYPE, CURLOPT_SSLCERTTYPE, and CUR- | | | LOPT_HTTP200ALIASES. | | | | +--------+---------------------------------------------------+ EXAMPLES
Example #1 Initializing a new cURL session and fetching a web page <?php // create a new cURL resource $ch = curl_init(); // set URL and other appropriate options curl_setopt($ch, CURLOPT_URL, "http://www.example.com/"); curl_setopt($ch, CURLOPT_HEADER, false); // grab URL and pass it to the browser curl_exec($ch); // close cURL resource, and free up system resources curl_close($ch); ?> Example #2 Uploading file <?php /* http://localhost/upload.php: print_r($_POST); print_r($_FILES); */ $ch = curl_init(); $data = array('name' => 'Foo', 'file' => '@/home/user/test.png'); curl_setopt($ch, CURLOPT_URL, 'http://localhost/upload.php'); curl_setopt($ch, CURLOPT_POST, 1); curl_setopt($ch, CURLOPT_POSTFIELDS, $data); curl_exec($ch); ?> The above example will output: Array ( [name] => Foo ) Array ( [file] => Array ( [name] => test.png [type] => image/png [tmp_name] => /tmp/phpcpjNeQ [error] => 0 [size] => 279 ) ) NOTES
Note Passing an array to CURLOPT_POSTFIELDS will encode the data as multipart/form-data, while passing a URL-encoded string will encode the data as application/x-www-form-urlencoded. SEE ALSO
curl_setopt_array(3). PHP Documentation Group CURL_SETOPT(3)
Man Page