PHP under the current for the most complete Curl Chinese description _php Foundation

Source: Internet
Author: User
Tags curl ftp ftp commands http 200 http authentication http request numeric php script
Curl function library in PHP (Client URL library function)

Curl_close-closes a Curl session
curl_copy_handle-copies all the contents and parameters of a Curl connection resource
curl_errno-returns a numeric number containing the current session error message
curl_error-returns a string containing the current session error message
curl_exec-executes a Curl session
Curl_getinfo-get information on a Curl connection resource handle
curl_init-initialization of a curl session
curl_multi_add_handle-Add a separate curl handle resource to a curl batch session
Curl_multi_close-closes a batch handle resource
curl_multi_exec-resolves a curl batch handle
curl_multi_getcontent-returns the text stream of the obtained output
Curl_multi_info_read-gets the relevant transport information of the currently resolved curl
curl_multi_init-initialization of a curl batch handle resource
curl_multi_remove_handle-removes a handle resource from a curl batch handle resource
Curl_multi_select-get the sockets associated with the curl extension, which can then to be "selected"
curl_setopt_array-sets the session parameters as an array for a curl
Curl_setopt-set session parameters for a curl
curl_version-Get Curl-related version information

The Curl_init () function Initializes a curl session, and the only parameter to the Curl_init () function is optional, representing a URL address.
The Curl_exec () function is to execute a curl session, the only argument is the handle returned by the Curl_init () function.
The role of the Curl_close () function is to close a curl session, with the only argument being a handle returned by the Curl_init () function.

$ch = Curl_init ("");
Curl_exec ($ch);
Curl_close ($ch);

The Curl_version () function is to obtain curl-related version information, and the Curl_version () function has a parameter that does not know what to do

Print_r (Curl_version ())

The Curl_getinfo () function is to get information about a Curl connection resource handle, the Curl_getinfo () function has two parameters, the first argument is the curl resource handle, and the second parameter is the following constants:

$ch = Curl_init ("");
Print_r (Curl_getinfo ($ch));

The optional constants include:

Last valid URL address

The last HTTP code received

The time of the remote fetch of the document, if it cannot be obtained, the return value is "-1"

The time spent on the last transfer

The time consumed by name resolution

Time spent establishing a connection

The time that is spent from establishing the connection to preparing the transfer

The time used to start the connection to the transport

The time used to redirect before the transaction transfer begins

Total amount of uploaded data

Total amount of data downloaded

Average download speed

Average upload speed

Size of Header part

Send the requested string

The size of the request with a problem in the HTTP request

Result is SSL certification verification requested by setting Curlopt_ssl_verifypeer

The length of the download content read from the Content-length:field

Description of upload content size

The "Content-type" value of the download, NULL indicates that the server did not send a valid "Content-type:header"

The role of the curl_setopt () function is to set session parameters for a curl. The role of the Curl_setopt_array () function is to set the session parameters as an array for a curl.

$ch = Curl_init ();
$fp = fopen ("Example_homepage.txt", "w");
curl_setopt ($ch, Curlopt_file, $fp);
$options = Array (
Curlopt_url => '',
Curlopt_header => False
Curl_setopt_array ($ch, $options);
Curl_exec ($ch);
Curl_close ($ch);
Fclose ($FP);

The parameters that can be set are:

Automatically set the Referer information in the header

Gets the data back when Curlopt_returntransfer is enabled

When enabled, Curl will simply pass a session cookie, ignoring the other cookies, and curl will return all cookies to the server by default. A session cookie is a cookie that is used to determine whether a server-side session is valid.

When enabled, converts a newline character from UNIX to a carriage return line feed.

When enabled, a global DNS cache is enabled, which is thread-safe and defaults to true.

Displays the HTTP status code, and the default behavior is to ignore HTTP information with a number less than or equal to 400

When enabled, an attempt is to modify information in a remote document. The resulting information is returned through the curlinfo_filetime option of the Curl_getinfo () function.

When enabled, "Location:" returned by the server server is returned recursively to the server in the header, using Curlopt_maxredirs to limit the number of recursive returns.

Forced disconnect after completing the interaction, cannot be reused.

Forces a new connection to replace the connection in the cache.

TRUE to the EPRT (and LPRT) when doing active FTP downloads. Use FALSE to disable EPRT and lprt with PORT only.
Added in PHP 5.0.0.

TRUE to a EPSV command for FTP transfers before reverting back to PASV. Set to FALSE to disable EPSV.

TRUE to append to the remote file instead of overwriting it.

An alias of Curlopt_transfertext. Use that instead.

TRUE to only list the names of FTP directory.

When enabled, the header file's information is exported as a data stream.

When enabled, the method of HTTP is set to get, because get is the default, so it is only used if it is modified.

When enabled, it is transmitted through the HTTP proxy.

Returns the default value for all modified parameters in the Curl function.

After the connection is established, access the ~/.NETRC file to get the username and password information to connect to the remote site.

When enabled, the body portion of HTML is not output.

Turn off the progress bar for Curl transport when enabled, the default setting of this key is true

When enabled, ignores all curl passed to PHP for the signal. This entry is opened by default when SAPI is multithreaded.

When enabled, a regular post request is sent, with the type: application/x-www-form-urlencoded, just like the form submission.

Allow HTTP to send files when enabled, you must set both Curlopt_infile and Curlopt_infilesize

The information that is curl_exec () is returned in the form of a file stream, rather than direct output.

FALSE to stop CURL from verifying the peer ' s certificate. Alternate certificates to verify against can is specified with the Curlopt_cainfo option or a certificate directory can Specified with the Curlopt_capath option. Curlopt_ssl_verifyhost may also need to TRUE or FALSE if curlopt_ssl_verifypeer are disabled (it defaults to 2). TRUE by default as of CURL 7.10. Default bundle installed as of CURL 7.10.

TRUE to use the ASCII mode for FTP transfers. For LDAP, it retrieves data in plain text instead of HTML. On Windows systems, it won't be set STDOUT to binary mode.

continues to append user name and password information in multiple locations in the header generated by using curlopt_followlocation, even if the domain name has changed.

Allow file transfer when enabled

When enabled, all information is reported, stored in stderr or designated Curlopt_stderr

The size of the cache is read in each fetch, and this value is filled each time.

Not curlclosepolicy_least_recently_used is curlclosepolicy_oldest, there are three other, but curl temporarily not support.

The time to wait before initiating the connection, and if set to 0, do not wait.

Sets the time to save DNS information in memory by default of 120 seconds.

The FTP authentication method (where is activated): Curlftpauth_ssl (Try SSL i), Curlftpauth_tls (try TLS-A-i), or CU Rlftpauth_default (let CURL decide).

Set the HTTP protocol used by CURL, Curl_http_version_none (let CURL own judge), Curl_http_version_1_0 (http/1.0), Curl_http_version_1_1 (http/ 1.1)

The HTTP authentication method that is used, the optional values are: Curlauth_basic,curlauth_digest,curlauth_gssnegotiate,curlauth_ntlm,curlauth_any,curlauth_ Anysafe, you can use the "|" operator separates multiple values, curl lets the server select a support best value, curlauth_any equivalent to Curlauth_basic | Curlauth_digest | Curlauth_gssnegotiate | Curlauth_ntlm,curlauth_anysafe equivalent to Curlauth_digest | Curlauth_gssnegotiate | Curlauth_ntlm

Set the size of the upload file

When the transfer speed is less than Curlopt_low_speed_limit, PHP will be judged by Curlopt_low_speed_time to see if the transmission is canceled because it is too slow.

The number of seconds the transfer should is below Curlopt_low_speed_limit for PHP to consider the transfer too and a Bort.
When the transfer speed is less than Curlopt_low_speed_limit, PHP will be judged by Curlopt_low_speed_time to see if the transmission is canceled because it is too slow.

Maximum number of connections allowed, over which connections should be stopped through Curlopt_closepolicy

Specifies the maximum number of HTTP redirects, which are used with curlopt_followlocation.

An optional amount to specify the connection port

The HTTP authentication method (s) to use for the proxy connection. Use the same bitmasks as described in Curlopt_httpauth. For proxy authentication, only Curlauth_basic and CURLAUTH_NTLM are currently supported.

The port number of the proxy to connect to. This port number can also is set in Curlopt_proxy.

Either curlproxy_http (default) or CURLPROXY_SOCKS5.

Passes a byte offset (used for a breakpoint continuation) when the transfer is resumed

1 to check the existence of a common name in the SSL peer certificate.
2 to check the existence's a common name and also verify that it matches the hostname.

The SSL version (2 or 3) to use. By default PHP would try to determine this itself, although in some cases the this must is set manually.

If edited after a certain time specified by Curlopt_timevalue, returns the page using Curl_timecond_ifmodsince, if it has not been modified, and Curlopt_header is true, returns a "304 not Modified "Header,curlopt_header is false, the curl_timecond_isunmodsince is used, and the default value is Curl_timecond_ifmodsince

Set the maximum number of seconds that curl allows to execute

Sets the timestamp used by a curlopt_timecondition, which is used in the default state curl_timecond_ifmodsince

The name of a file holding one or more certificates to verify the peer with. This is makes sense when used in combination with Curlopt_ssl_verifypeer.

A directory that holds multiple CA certificates. Use this option alongside Curlopt_ssl_verifypeer.

Sets the contents of the "Set-cookie:" section of the HTTP request.

The name of the file containing the cookie information, which can be in Netscape format or HTTP-style header information.

The name of the file that holds the cookie information after the connection is closed

A custom request method to use instead of ' get ' or ' head ' when doing a HTTP request. This is useful to doing "DELETE" or other, and more obscure HTTP requests. Valid values are things like ' get ', ' POST ', ' CONNECT ' and so on; i.e. do don't enter a whole HTTP request line. For instance, entering "get/index.html http/1.0\r\n\r\n" would to be incorrect.
Note:don ' t does this without making sure the server supports the custom request method.

Like Curlopt_random_file, except a filename to a Entropy gathering Daemon socket.

Header in the "Accept-encoding:" section of the content, supported by the encoding format: "Identity", "deflate", "gzip." If set to an empty string, all encoding formats are supported

The value which would be used to get the IP addresses to the "POST" instruction. The "POST" instruction tells the remote server to connect to my specified IP address. The string may is a plain IP address, a hostname, a network interface name (under Unix), or just a plain '-' to use the ' sy Stems default IP address.

The name used in the external network interface, which can be an interface name, IP, or host name.

KRB4 (Kerberos 4) Security level settings can be one of several values: "Clear", "safe", "confidential", "private". The default value is private, when set to null to disable KRB4, now KRB4 security can only be used in FTP transport.

The POST operation in HTTP. If you want to transfer a file, you need a filename at the beginning of @

To set up a passed HTTP proxy server

User name and password in the format "[Username]:[password]", which is connected to the proxy server.

Set the name of the file that holds the random number of seeds used for SSL

Set the HTTP transmission range, you can set a transmission interval in the form of "X-y", if there is more than one HTTP transmission, use commas to separate multiple values, such as: "X-y,n-m".

Set the value in the "Referer:" section of the header.

A List of ciphers to use for SSL. For example, Rc4-sha and TLSV1 are valid cipher.

Passes a string containing the PEM format certificate.

Pass a password that is required to use the Curlopt_sslcert certificate.

The format of the certificate. Supported formats are the "PEM" (default), "DER", and "ENG".

The identifier for the "crypto engine of the" private SSL key specified in Curlopt_sslkey.

The identifier for the crypto engine used for asymmetric crypto.

The name of a file containing a private SSL key.

The secret password needed to use is 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 safe.

The key type of the private SSL key specified in Curlopt_sslkey. Supported key types are "PEM" (default), "DER", and "ENG".

The URL address that needs to be obtained can also be set in the PHP Curl_init () function.

A string that contains a "user-agent" header in the HTTP request.

Pass the username and password required in a connection in the form: [Username]:[password].

The setting is no longer to handle the response of HTTP 200 in the form of an error, in an array format.

Sets an array of contents to be transferred in a header.

An array of FTP commands to execute on the server after the FTP request has been performed.

An array of FTP commands to execute on the server prior to the FTP request.

Sets the location of the output file, the value is a resource type, and the default is stdout (browser).

The file address to be read when uploading the file, and the value is a resource type.

Sets an error output address, and the value is a resource type that replaces the default stderr.

Sets the write file address of the header portion of the content, and the value is a resource type.

Set a callback function that has two parameters, the first is the curl resource handle, and the second is the header data for the output. The output of the header data must depend on this function to return the data size that has been written.

Set a callback function with three parameters, the first is the curl resource handle, the second is a password prompt, and the third parameter is the maximum password length allowed. Returns the value of the password.

Sets a callback function that has two parameters, the first is the curl resource handle, and the second is the data read. Data reads must depend on this function. Returns the size of the read data, such as 0 or EOF.

Set a callback function that has two parameters, the first is the curl resource handle, and the second is the data that is written. Data writes must depend on this function. Returns the exact size of the written data

The function of Curl_copy_handle () is to copy all the contents and parameters of a Curl connection resource

$ch = Curl_init ("");
$another = Curl_copy_handle ($ch);
Curl_exec ($another);
Curl_close ($another);

The purpose of the Curl_error () function is to return a string containing the current session error message.
The Curl_errno () function returns a numeric number that contains the current session error message.

The role of the Curl_multi_init () function is to initialize a curl batch handle resource.
The role of the Curl_multi_add_handle () function is to add a separate curl handle resource to the Curl batch session. The Curl_multi_add_handle () function has two parameters, the first parameter represents a curl batch handle resource, and the second parameter represents a separate curl handle resource.
The Curl_multi_exec () function is to parse a curl batch handle, the Curl_multi_exec () function has two parameters, the first parameter represents a batch handle resource, and the second parameter is a reference value parameter. Represents the number of individual curl handle resources remaining to be processed.
The Curl_multi_remove_handle () function represents the removal of a handle resource in a curl batch handle resource, the Curl_multi_remove_handle () function has two parameters, the first parameter represents a curl batch handle resource, The second parameter represents a separate curl handle resource.
The role of the Curl_multi_close () function is to close a batch handle resource.

$ch 1 = curl_init ();
$ch 2 = Curl_init ();
curl_setopt ($ch 1, Curlopt_url, "");
curl_setopt ($ch 1, curlopt_header, 0);
curl_setopt ($ch 2, Curlopt_url, "");
curl_setopt ($ch 2, Curlopt_header, 0);
$MH = Curl_multi_init ();
Curl_multi_add_handle ($MH, $ch 1);
Curl_multi_add_handle ($MH, $ch 2);
do {
Curl_multi_exec ($MH, $flag);
while ($flag > 0);
Curl_multi_remove_handle ($MH, $ch 1);
Curl_multi_remove_handle ($MH, $ch 2);
Curl_multi_close ($MH);

The role of the curl_multi_getcontent () function is to return the text stream of the obtained output when the Curlopt_returntransfer is set.

The role of the Curl_multi_info_read () function is to obtain the relevant transport information for the currently resolved curl.

Curl_multi_select ()
Get all the sockets associated with the CURL extension, which can then to be "selected"

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.