配色: 字号:
php curl模拟post请求提交数据例子总结
2016-08-22 | 阅:  转:  |  分享 
  
[s]?[sS]?[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);}

?

classruntime{???var$StartTime=0;???var$StopTime=0;???functionget_microtime()???{???????list($usec,$sec)=explode('''',microtime());return((float)$usec+(float)$sec);???}???functionstart()???{???????$this->StartTime=$this->get_microtime();???}???functionstop(){???????$this->StopTime=$this->get_microtime();???}???functionspent()???{???????return($this->StopTime-$this->StartTime);???}}

?

$runtime->stop();

$con=''Processedin''.$runtime->spent().''seconds'';echo''Processedin''.$runtime->spent().''seconds''; 模拟POST请求提交数据或上传文件.

.

?代码如下 复制代码 http://www.a.com/a.php

发送POST请求

functionexecUpload(){

$file=''/doucment/Readme.txt'';$ch=curl_init();$post_data=array(???''loginfield''=>''username'',???''username''=>''ybb'',???''password''=>''123456'',''file''=>''@d:usrwwww.shanxiwang.netwwtranslatedocumentReadme.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,''handleUpload.php'');$info=curl_exec($ch);curl_close($ch);???print_r($info);

}

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

functionhandleUpload(){print_r($_POST);echo''===fileuploadinfo:'';print_r($_FILES);} ■cURL函数

■curl_close—关闭一个cURL会话■curl_copy_handle—复制一个cURL句柄和它的所有选项■curl_errno—返回最后一次的错误号■curl_error—返回一个保护当前会话最近一次错误的字符串■curl_exec—执行一个cURL会话■curl_getinfo—获取一个cURL连接资源句柄的信息■curl_init—初始化一个cURL会话■curl_multi_add_handle—向curl批处理会话中添加单独的curl句柄■curl_multi_close—关闭一组cURL句柄■curl_multi_exec—运行当前cURL句柄的子连接■curl_multi_getcontent—如果设置了CURLOPT_RETURNTRANSFER,则返回获取的输出的文本流■curl_multi_info_read—获取当前解析的cURL的相关传输信息■curl_multi_init—返回一个新cURL批处理句柄■curl_multi_remove_handle—移除curl批处理句柄资源中的某个句柄资源■curl_multi_select?—等待所有cURL批处理中的活动连接■curl_setopt_array—为cURL传输会话批量设置选项■curl_setopt—设置一个cURL传输选项■curl_version—获取cURL版本信息



phpcurl模拟post请求提交数据例子总结

在php中要模拟post请求数据提交我们会使用到curl函数,下面我来给大家举几个curl模拟post请求提交数据例子有需要的朋友可参考参考。

注意:curl函数在php中默认是不被支持的,如果需要使用curl函数我们需在改一改你的php.ini文件的设置,找到php_curl.dll去掉前面的";"就行了

例1

?代码如下 复制代码 ''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页面远程服务器:

例2

用CURL模拟POST请求抓取邮编与地址

完整代码:

?代码如下 复制代码 #!/usr/local/php/bin/phpstart();

$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]?
献花(0)
+1
(本文系网络学习天...首藏)