Copy code The code is as follows:
$ch = curl_init();
$c_url = 'http://www.baidu .com';
$c_url_data = "product_&type=".$type."";
curl_setopt($ch, CURLOPT_URL,$c_url);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $c_url_data);
echo $result = curl_exec($ch);
curl_close ($ch);
unset($ch);
Using Curl in PHP
Posted 09-14th, 2008 Attributed to PHP
Original (English) address: http://www.phpit.net /article/using-curl-php Copyright Statement: Attribution-Non-Commercial-No Derivatives 2.0
Abstract:
In this article, we mainly explain the knowledge of php_curl library and teach you how to better use php_curl .
Introduction
You may encounter this problem when writing PHP script code: How to get content from other sites? There are several solutions here; the simplest is to use the fopen() function in PHP, but the fopen function does not have enough parameters to use, such as when you want to build a "web crawler" and want to define the client description of the crawler (IE , firefox), obtain content through different request methods, such as POST, GET; etc. These requirements cannot be achieved with the fopen() function.
In order to solve the problem we raised above, we can use the PHP extension library-Curl. This extension library is usually included in the installation package by default. You can use it to obtain the content of other sites or do other things.
Note: These two pieces of code require the support of the php_curl extension library. Check phpinfo(). If curl support is enabled, it means the curl library is supported.
1. Enable curl library support for PHP under Windows:
Open php.ini and remove the ; sign before extension=php_curl.dll.
2. Enable curl library support for PHP under Linux:
When compiling PHP, add –with-curl after ./configure
In this article, let’s take a look at how to use the curl library. And look at its other uses, but next, we want to start with the most basic usage
Basic usage:
In the first step, we create a new curl session through the function curl_init(), the code is as follows:
// create a new curl resource
$ch = curl_init();
?>
We have successfully created a curl session. If we need to obtain the content of a URL, the next step is , pass a URL to the curl_setopt() function, code:
// set URL and other appropriate options
curl_setopt($ch, CURLOPT_URL, “http://www.google.com/”);
?>
After completing the previous step, the curl preparation work is completed. curl will obtain the content of the URL site and print it out. Code:
// grab URL and pass it to the browser
curl_exec($ch);
?>
Finally, close the current curl session
//close curl resource, and free up system resources
curl_close($ch);
?>
Let’s take a look at the completed example code:
Copy code The code is as follows:
// create a new curl resource
$ch = curl_init();
// set URL and other appropriate options
curl_setopt($ch, CURLOPT_URL, “http://www.google.nl/”);
// grab URL and pass it to the browser
curl_exec($ch);
// close curl resource, and free up system resources
curl_close($ch);
?>
We have just obtained the content of another site and automatically output it to the browser. Is there any other way? What about organizing the information it gets and then controlling what it outputs? There is no problem at all. In the parameters of the curl_setopt() function, if you want to get the content but not output it, use the CURLOPT_RETURNTRANSFER parameter and set it to a non-0 value/true!. For the complete code, please see:
Copy code The code is as follows:
// create a new curl resource
$ch = curl_init();
// set URL and other appropriate options
curl_setopt($ch, CURLOPT_URL, “http://www.google.nl/”);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
// grab URL, and return output
$output = curl_exec($ch);
// close curl resource, and free up system resources
curl_close($ch);
// Replace 'Google' with 'PHPit'
$ output = str_replace('Google', 'PHPit', $output);
// Print output
echo $output;
?>
In the above two examples, you may have noticed that by setting different parameters of the function curl_setopt(), you can obtain different results. This is why curl is powerful. Let’s take a look at the meaning of these parameters.
CURL related options:
If you have read the curl_setopt() function in the PHP manual, you can notice that there is a long list of parameters below it. It is impossible for us to introduce them one by one. For more information, please check PHP manual, here only introduces some commonly used and some parameters.
The first interesting parameter is CURLOPT_FOLLOWLOCATION. When you set this parameter to true, curl will obtain the redirection path deeper based on any redirection command. For example: when you try to obtain a PHP page, Then there is a jump code in this PHP page, and curl will get the content from http://new_url instead of returning the jump code. The complete code is as follows:
Copy code The code is as follows:
// create a new curl resource
$ch = curl_init();
// set URL and other appropriate options
curl_setopt($ch, CURLOPT_URL, “http://www.google.com/”);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true );
// grab URL, and print
curl_exec($ch);
?>
If Google sends a redirect request, the above example will redirect based on The URL continues to obtain content. The two options related to this parameter are CURLOPT_MAXREDIRS and CURLOPT_AUTOREFERER.
The parameter CURLOPT_MAXREDIRS option allows you to define the maximum number of jump requests. After this number, its content will no longer be obtained. If CURLOPT_AUTOREFERER is set to true, curl will automatically add the Referer header to each jump link. It may not be very important, but it is very useful in certain cases.
The next parameter introduced is CURLOPT_POST, this is a very useful feature as it allows you to do a POST request instead of a GET request, which essentially means you can submit
other forms of the page, No need to actually fill in the form. The following example shows what I mean:
Copy the code The code is as follows:
// create a new curl resource
$ch = curl_init();
// set URL and other appropriate options
curl_setopt($ch, CURLOPT_URL,” http://projects/phpit/content/using%20curl%20php/demos/handle_form.php ”);
// Do a POST
$data = array('name' => 'Dennis', 'surname' => 'Pallett');
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
// grab URL, and print
curl_exec($ch);
?>
And the handle_form.php file:
echo 'Form variables I received:';
echo '';
print_r ($_POST);
echo '';
?>
As you can see, this makes it really easy to submit forms, which is a great way to test all your forms without having to fill them all the time.
The parameter CURLOPT_CONNECTTIMEOUT is usually used to set the time that curl tries to request a link. This is a very important option. If you set this time too short, it may cause the curl request to fail.
But if you set it for too long, maybe the PHP script will die. An option related to this parameter is CURLOPT_TIMEOUT, which is used to set the time required for curl to be allowed to execute. If you set this to a very small value, it may cause the downloaded pages to be incomplete because they take a while to download.
The last option is CURLOPT_USERAGENT, which allows you to customize the client name of the request, such as webspilder or IE6.0. The sample code is as follows:
Copy code The code is as follows:
// create a new curl resource
$ch = curl_init();
// set URL and other appropriate options
curl_setopt($ch , CURLOPT_URL, “http://sc.jb51.net/”);
curl_setopt($ch, CURLOPT_USERAGENT, 'My custom web spider/0.1′);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
// grab URL, and print
curl_exec($ch);
?>
Now that we have introduced the most interesting parameter, let’s do Introduce a curl_getinfo() function and see what it can do for us.
Get page information:
The function curl_getinfo() allows us to get various information about the receiving page. You can edit this information by setting the second parameter of the option. You can also pass it in the form of an array. Just like the following example:
Copy code The code is as follows:
// create a new curl resource
$ch = curl_init();
// set URL and other appropriate options
curl_setopt($ch, CURLOPT_URL, “http://www .google.com");
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_FILETIME, true);
/ / grab URL
$output = curl_exec($ch);
// Print info
echo '';
print_r (curl_getinfo($ch));
echo '';
?>
Most of the information returned is the request itself, such as: the time spent on this request, the header file information returned, and of course some page information, such as the size of the page content. The time of last modification.
That was all about the curl_getinfo() function, now let’s see what it’s actually used for.
Actual use:
The first use of the curl library is to check whether a URL page exists. We can judge by looking at the code returned by the URL request. For example, 404 means that the page does not exist. Let's look at some examples:
Copy code The code is as follows:
// create a new curl resource
$ch = curl_init();
// set URL and other appropriate options
curl_setopt($ch, CURLOPT_URL, “http://www.google.com/does/not/exist”);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true );
// grab URL
$output = curl_exec($ch);
// Get response code
$response_code = curl_getinfo($ch, CURLINFO_HTTP_CODE);
// Not found ?
if ($response_code == '404′) {
echo 'Page doesn't exist';
} else {
echo $output;
}
?>
Other users may create an automatic checker that verifies the existence of each requested page.
We can use the curl library to write a web spider similar to Google, or other web spiders. This article is not about how to write a web spider, so we do not talk about any details about web spiders, but in the future we will introduce using curl to construct a web spider in PHPit.
Conclusion:
Here In this article I have shown how to use the curl library in PHP and most of its options.
For the most basic tasks, just getting a web page, you probably won't need the CURL library, however, once you want to do anything slightly more advanced, you may want to use the curl library.
In the near future, I will tell you exactly how to build your own web spider, similar to Google's web spider, so stay tuned, with phpit.
http://www.bkjia.com/PHPjc/322663.htmlwww.bkjia.comtruehttp: //www.bkjia.com/PHPjc/322663.htmlTechArticleCopy the code as follows: $ch = curl_init(); $c_url = 'http://www.baidu. com'; $c_url_data = "product_ curl_setopt($ch, CURLOPT_URL,$c_url); curl_setopt($ch, CURLOPT_POST, 1); curl...