1. Basic steps of cURL request:
(1)Initialization
(2) Set options, including URL
(3) Execute and obtain HTML document content
(4) Release cURL handle
//2. Set options, including URL
curl_setopt($ch, CURLOPT_URL, "http://www.cnblogs.com/it-cen/");
//Return the information obtained by curl_exec() in the form of a file stream instead of outputting it directly
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
//The header file information will be output as a data stream when starting
curl_setopt($ch, CURLOPT_HEADER, 1);
//3. Execute and obtain the content of the HTML document
curl_exec($ch);
//4. Release handle
curl_close($ch);
echo $ch;
?>
Note: The second step is the most important, which is the curl_setopt() function
We can add a statement to check errors. Note that "===false" is used here to distinguish between empty output and the Boolean value false
The curl_getinfo() function returns information related to this request after cURL is executed, which is useful for debugging and troubleshooting:
';<br> print_r($info); echo '';
2. This information is very useful in debugging. For example, when cURL is crawling, the crawled data may often be incomplete due to network and other reasons. This is what we can obtain through The data calculates the filesize, and then compares it with the one obtained by curl_getinfo(). If the sizes are equal, it is deemed that the download is correct, otherwise the download is repeated.
Let’s look at an example of grabbing an image:
//1. Initialization
$ch = curl_init();
//2. Set options, including URL
curl_setopt($ch, , CURLOPT_URL, "http://img04.taobaocdn.com/tfscom/TB1omaTHXXXXXajXVXXtKXbFXXX.png");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_HEADER, 1);
//3. Execute and obtain content
$res = curl_exec($ch);
//Get information
$info = curl_getinfo($ch);
//4. Release resources
curl_close($ch);
file_put_contents("d:/aa.png", $res);
$size = filesize("d:/aa.png");
if ($size != $info['size_download']) {
echo "The downloaded data is incomplete, please download again";
} else {
echo "Download data is complete";
}
?>
3. Use POST method to send data in cURL
$data = array('name'=>'kelly', 'age'=>27, 'sex'=>1);
curl_setopt($ch, CURLOPT_URL, "http://localhost.post.php");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
//Set to post
curl_setopt($ch, CURLOPT_POST, 1);
//Add
to the post variable
curl_setopt($ch, CURLOPT_POSTFIELDS,$data);
$res = curl_exec($ch);
curl_close($ch);
echo $res;
?>
Use this method to simulate leaving a message, or you can sit on a water-filling robot. The idea is the same
4. Upload files using cURL
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "http://127.0.0.1/Socket/upload_file.php");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
$res = curl_exec($ch);
curl_close($ch);
echo $res;
?>
Note: When sending a file, prefix the file name with @ and use the full path
5. cURL setting items
In fact, cURL has many configuration options. These options are the soul of cURL. They are set through setopt(). Here is a summary of several common and important configuration items. I hope it will be helpful to readers when they use cURL in the future. Help:
CURLOPT_AUTOREFERER: When redirecting based on location:, automatically set the Referer: information in the header
CURLOPT_COOKIESESSION: When enabled, cURL will tightly pass a session cookie and ignore other cookies
CURLOPT_HEADER: Output the header file information as a data stream
CURLOPT_INFILESIZE: Set the size of the uploaded file in bytes
CURLOPT_MAXCONNECTS: Maximum number of connections allowed
CURLOPT_MAXREDIRS: Specify the maximum number of HTTP redirects
CURLOPT_COOKIE: Set the content of the "cookie:" part of the HTTP request. Multiple cookies are followed by a semicolon, and there is a space after the semicolon
CURLOPT_POSTFIELDS: All data is sent using the "POST" operation in the HTTP protocol. To send files, add @ prefix in front of the file name and use the full path
......
Please refer to the PHP manual for more specific configuration items
cURL is very powerful. It is a universal library and is not unique to PHP.
I hope readers will gain something from studying several classic cURL examples in this blog post.