Home  >  Article  >  Backend Development  >  PHP curl simulates post request to submit data example summary_PHP tutorial

PHP curl simulates post request to submit data example summary_PHP tutorial

WBOY
WBOYOriginal
2016-07-20 11:11:59980browse

To simulate post request data submission in PHP, we will use the curl function. Let me give you a few examples of curl simulating post request data submission. Friends in need can refer to it.

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. Find php_curl.dll and remove the ";" in front of it

Example 1

The code is as follows
Copy code
 代码如下 复制代码

$uri = "http://tanteng.duapp.com/test.php";
// 参数数组
$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);

接受php页面远程服务器:

if(isset($_POST['name'])){
if(!empty($_POST['name'])){
echo '您好,',$_POST['name'].'!';
}
}
?>

$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 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 to capture zip code and address

Full code:

[s]*? [s]*?/', $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 written $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->StopTime=$this->get_microtime();
                                                                                                                                                                                     StopTime-$this->StartTime);
}
}
$runtime->stop ();
$con = 'Processed in'.$runtime->spent().'seconds';
echo 'Processed in'. $runtime->spent().'seconds';
The code is as follows Copy code
[s]*?[s]*?/', $data, $matches);
    if (!$handle = fopen($filename, 'a+')) {
        echo "不能打开文件 $filename";
        echo "n";
        exit;
    }


    if (fwrite($handle, $matches[0][1]) === FALSE) {
        echo "不能写入到文件 $filename";
        echo "n";
        exit;
    }


    echo "成功地将 $somecontent 写入到文件$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';

 代码如下 复制代码

#!/usr/local/php/bin/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); // 发送一个常规的Post请求
    curl_setopt($ch, CURLOPT_POSTFIELDS, $fields_string );


    $data = curl_exec($ch);
    preg_match_all('/id="table1">[s]*?

[sS]*?
#!/usr/local/php/bin /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,
                                                                                                                                                                                        zip = sprintf('6s',                             2,
         'reqCode' => 'gotoSearch',
              'search_button. 🎜>
$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]*?
[sS]*?

Simulate POST request to submit data or upload files.

.

print_r($info);

The code is as follows
 代码如下 复制代码

http://www.a.com/a.php

发送POST请求

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);
//启用时会发送一个常规的POST请求,类型为:application/x-www-form-urlencoded,就像表单提交的一样。
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);
}

Copy code

http://www.a.com/a.php

Send 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 will be sent, type: application/x- www-form-urlencoded, just like form submission.
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch,CURLOPT_BINARYTRANSFER,true); 'http://www.b.com/handleUpload.php');
$info= curl_exec($ch);

curl_close($ch);

}

2.http://www.b.com/handleUpload.php

print_r($_POST);echo '===file upload info:';print_r($_FILES);} ■cURL function
■curl_close — Close a cURL session ■curl_copy_handle — Copy a cURL handle and all its options
■curl_errno — Return the last error number
■curl_error — Return a protector for the current session String of the latest error ■curl_exec — Execute a cURL session ■curl_getinfo — Get information about a cURL connection resource handle ■curl_init — Initialize a cURL session ■curl_multi_add_handle — Add curl batch processing Add a separate curl handle to the session ■ curl_multi_close — Close a group of cURL handles ■ curl_multi_exec — Run a sub-connection of the current cURL handle ■ curl_multi_getcontent — If CURLOPT_RETURNTRANSFER is set, return a text stream of the fetched output ■curl_multi_info_read — Get the relevant transmission information of the currently parsed cURL ■curl_multi_init — Return a new cURL batch handle ■curl_multi_remove_handle — Remove a handle resource in the curl batch handle resource ■curl_multi_select — Wait for all active connections in a cURL batch ■curl_setopt_array — Set options for a cURL transfer session batch ■curl_setopt — Set a cURL transfer option ■curl_version — Get cURL version information http://www.bkjia.com/PHPjc/444612.htmlwww.bkjia.comtruehttp: //www.bkjia.com/PHPjc/444612.htmlTechArticleTo simulate post request data submission in php, we will use the curl function. Let me give you a few examples. Friends who need an example of curl simulating a post request to submit data can refer to it. NOTE: ...
Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn