php模拟post请求的方法总结

php 模拟 post 请求的方法总结。主要有两种办法,通过 fsocket 和通过 curl,下面就简单的举两个案例说明一下 php 如何使用这两种方法模拟 post 请求。

(1)php 通过 fsocket 模拟 post 提交请求

  1. <?php 
  2. function sock_post($url,$query){ 
  3.     $info=parse_url($url); 
  4.     $fp=fsockopen($info["host"],80,$errno,$errstr,3); 
  5.     $head="POST ".$info['path']." HTTP/1.0\r\n"
  6.     $head.="Host: ".$info['host']."\r\n"
  7.     $head.="Referer: http://".$info['host'].$info['path']."\r\n"
  8.     $head.="Content-type: application/x-www-form-urlencoded\r\n"
  9.     $head.="Content-Length: ".strlen(trim($query))."\r\n"
  10.     $head.="\r\n"
  11.     $head.=trim($query); 
  12.     $write=fputs($fp,$head); 
  13.     while(!feof($fp)){ 
  14.         $line=fgets($fp); 
  15.         echo $line."<br>"
  16.     } 

使用方法如下(注意$url这个参数必须是域名,不可以是localhost这种形式的url):

  1. $purl="http://www.daimajiyuan.com/post.php"
  2. echo "以下是POST方式的响应内容:<br>";  
  3. sock_post($purl,"name=php程序员教程网&&url=http://www..daimajiyuan.com/"); 

(2)php 通过 curl 模拟 post 提交请求

  1. <?php 
  2. $url='http://www.daimajiayuan.com/post.php'
  3. $fields=array
  4.     'lname'=>'justcoding'
  5.     'fname'=>'phplover'
  6.     'title'=>'myapi'
  7.     'email'=>'2630481389@qq.com'
  8.     'phone'=>'13888888888' 
  9. ); 
  10. $ch=curl_init(); 
  11. curl_setopt($ch,CURLOPT_URL,$url); 
  12. curl_setopt($ch,CURLOPT_POST,count($fields)); 
  13. curl_setopt($ch,CURLOPT_POSTFIELDS,$fields); 
  14. ob_start(); 
  15. curl_exec($ch); 
  16. $result=ob_get_contents(); 
  17. ob_end_clean(); 
  18. echo $result
  19. curl_close($ch); 

转载请注明:代码家园 » php模拟post请求的方法总结

评论列表(网友评论仅供网友表达个人看法,并不表明本站同意其观点或证实其描述)