当前位置:首页 > PHP教程 > php应用 > 列表

php实现模拟post请求用法实例

发布:smiling 来源: PHP粉丝网  添加日期:2021-06-11 10:00:01 浏览: 评论:0 

这篇文章主要介绍了php实现模拟post请求用法,分析了php模拟post请求的三种常见用法,具有一定参考借鉴价值,需要的朋友可以参考下。

本文实例讲述了php实现模拟post请求的方法,分享给大家供大家参考,具体如下:

  1. class Request{ 
  2.  public static function post($url$post_data = ''$timeout = 5){//curl 
  3.   $ch = curl_init();  
  4.   curl_setopt ($ch, CURLOPT_URL, $url); 
  5.   curl_setopt ($ch, CURLOPT_POST, 1); 
  6.   if($post_data != ''){ 
  7.    curl_setopt($ch, CURLOPT_POSTFIELDS, $post_data); 
  8.   } 
  9.   curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1);  
  10.   curl_setopt ($ch, CURLOPT_CONNECTTIMEOUT, $timeout); 
  11.   curl_setopt($ch, CURLOPT_HEADER, false); 
  12.   $file_contents = curl_exec($ch); 
  13.   curl_close($ch); 
  14.   return $file_contents
  15.  }  
  16.  public static function post2($url$data=array()){//file_get_content 
  17.   $postdata = http_build_query( 
  18.    $data 
  19.   );    
  20.   $opts = array('http' => 
  21.       array
  22.        'method' => 'POST'
  23.        'header' => 'Content-type: application/x-www-form-urlencoded'
  24.        'content' => $postdata 
  25.       ) 
  26.   );    
  27.   $context = stream_context_create($opts); 
  28.   $result = file_get_contents($url, false, $context);  
  29.   return $result
  30.  }  
  31.  public static function post3($host,$path,$query,$others=''){//fsocket 
  32.   $post="POST $path HTTP/1.1\r\nHost: $host\r\n"
  33.   $post.="Content-type: application/x-www-form-"
  34.   $post.="urlencoded\r\n${others}"
  35.   $post.="User-Agent: Mozilla 4.0\r\nContent-length: "
  36.   $post.=strlen($query)."\r\nConnection: close\r\n\r\n$query"
  37.   $h=fsockopen($host,80); 
  38.   fwrite($h,$post); 
  39.   for($a=0,$r='';!$a;){ 
  40.     $b=fread($h,8192); 
  41.     $r.=$b
  42.     $a=(($b=='')?1:0); 
  43.    } 
  44.   fclose($h); 
  45.   return $r
  46.  } 
  47. $url='http://******/con/Inter.php'
  48. $data=Request::post($url,array('api'=>'tag_list')); 
  49. $data2=Request::post2($url,array('api'=>'tag_list')); 
  50. echo $data;

Tags: php模拟post

分享到: