Curl
In PHP to simulate POST request data submission we will use the CURL function, below I would like to give you a few Curl analog Post request submission data examples of friends who need to refer to.
Note: The curl function is not supported by default in PHP, if you need to use the Curl function we need to change the settings of your php.ini file to find Php_curl.dll to remove the previous ";" It's all right.
Example 1
<?php
$uri = "http://tanteng.duapp.com/test.php";
Parameter array
$data = Array (
' Name ' = ' Tanteng '
' Password ' = ' password '
);
$ch = Curl_init ();
Print_r ($ch);
curl_setopt ($ch, Curlopt_url, $uri);
curl_setopt ($ch, Curlopt_post, 1);
curl_setopt ($ch, Curlopt_header, 0);
curl_setopt ($ch, Curlopt_returntransfer, 1);
curl_setopt ($ch, Curlopt_postfields, $data);
$return = curl_exec ($ch);
Curl_close ($ch);
Print_r ($return);
Accept the PHP page remote server:
<?php
if (isset ($_post[' name ')) {
if (!empty ($_post[' name ')) {
echo ' Hello, ', $_post[' name ']. '! ‘;
}
}
?>
Example 2
Use curl to simulate post request crawl ZIP code and address
Full code:
#!/usr/local/php/bin/php
<?php
$runtime = new runtime ();
$runtime->start ();
$cookie _jar = Tempnam ('/tmp ', ' Cookie ');
$filename = $argv [1];
$start _num= $argv [2];
$end _num = $argv [3];
for ($i = $start _num; $i < $end _num; $i + +) {
$zip = sprintf (' 6s ', $i);
$fields _post = Array (
' Postcode ' = $zip,
' Querykind ' = 2,
' Reqcode ' = ' gotosearch ',
' Search_button.x ' =>37,
' Search_button.y ' =>12
);
$fields _string = http_build_query ($fields _post, ' & ');
$ch = Curl_init ();
curl_setopt ($ch, Curlopt_url, "url?reqcode=gotosearch&querykind=2&postcode=". $zip);
curl_setopt ($ch, Curlopt_header, true);
curl_setopt ($ch, Curlopt_returntransfer, true);
curl_setopt ($ch, Curlopt_post, true);
curl_setopt ($ch, Curlopt_connecttimeout, 120);
curl_setopt ($ch, Curlopt_referer, $refer);
curl_setopt ($ch, Curlopt_httpheader, $headers _login);
curl_setopt ($ch, Curlopt_cookiefile, $cookie _jar);
curl_setopt ($ch, Curlopt_cookiejar, $cookie _jar);
curl_setopt ($ch, curlopt_useragent, $_server[' http_user_agent ');
curl_setopt ($ch, Curlopt_post, 1); Send a regular POST request
curl_setopt ($ch, Curlopt_postfields, $fields _string);
$data = curl_exec ($ch);
Preg_match_all ('/id= ' table1 ">[s]*?<tr>[s]*?<td class=" Maintext ">[ss]*?</td>[s]*?</tr >/', $data, $matches);
if (! $handle = fopen ($filename, ' A + ')) {
echo "Cannot open file $filename";
echo "n";
Exit
}
if (fwrite ($handle, $matches [0][1]) = = = = FALSE) {
echo "Cannot write to file $filename";
echo "n";
Exit
}
echo "successfully wrote $somecontent to file $filename";
echo "n";
Fclose ($handle);
Curl_close ($ch);
}
Class runtime
{
var $StartTime = 0;
var $StopTime = 0;
function Get_microtime ()
{
List ($usec, $sec) =explode (", Microtime ()); return (float) $usec + (float) $sec);
}
function Start ()
{
$this->starttime= $this->get_microtime ();
}
function Stop () {
$this->stoptime= $this->get_microtime ();
}
function spent ()
{
Return ($this->stoptime-$this->starttime);
}
}
$runtime->stop ();
$con = ' processed in '. $runtime->spent (). ' Seconds ';
echo ' processed in '. $runtime->spent (). ' Seconds ';
?>
Example 3
Impersonate a POST request to submit data or upload a file.
http://www.a.com/a.php
Send a POST request
function Execupload () {
$file = '/doucment/readme.txt ';
$ch = Curl_init ();
$post _data = Array (
' Loginfield ' = ' username ',
' Username ' = ' ybb ',
' Password ' = ' 123456 ',
' File ' = ' @d:usrwwwtranslatedocumentreadme.txt '
);
curl_setopt ($ch, Curlopt_header, false);
When enabled, a regular post request is sent with the type: application/x-www-form-urlencoded, just as the form was submitted.
curl_setopt ($ch, Curlopt_post, true);
curl_setopt ($ch, curlopt_binarytransfer,true);
curl_setopt ($ch, Curlopt_postfields, $post _data);
curl_setopt ($ch, Curlopt_url, ' http://www.b.com/handleUpload.php ');
$info = curl_exec ($ch);
Curl_close ($ch);
Print_r ($info);
}
2.http://www.b.com/handleupload.php
function Handleupload () {
Print_r ($_post);
Echo ' ===file upload info: ';
Print_r ($_files);
}
CURL Function Introduction
curl_close-closing a Curl session
curl_copy_handle-copy a curl handle and all of its options
curl_errno-returns the last error number
curl_error-returns a string that protects the most recent error of the current session
Curl_exec-performing a Curl session
Curl_getinfo-gets the information for a Curl connection resource handle
curl_init-initialization of a curl session
curl_multi_add_handle-Adding a separate curl handle to a curl batch session
curl_multi_close-closing a set of curl handles
curl_multi_exec-A child connection that runs the current curl handle
curl_multi_getcontent-if Curlopt_returntransfer is set, returns the text stream of the obtained output
Curl_multi_info_read-Gets the related transfer information for the currently resolved curl
curl_multi_init-returns a new Curl batch handle
curl_multi_remove_handle-removing a handle resource from the Curl batch handle resource
curl_multi_select-waiting for active connections in all Curl batches
curl_setopt_array-Bulk setup options for Curl transfer sessions
curl_setopt-Setting a Curl Transfer option
curl_version-Getting Curl Version information
Example of a PHP Curl simulation POST Request