首頁  >  文章  >  後端開發  >  PHP发送POST请求的三种方式

PHP发送POST请求的三种方式

WBOY
WBOY原創
2016-07-25 08:41:53877瀏覽
[PHP]代码      
  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){//file_get_content
  17.         
  18.         $postdata = http_build_query(
  19.             $data
  20.         );
  21.         
  22.         $opts = array('http' =>
  23.                       array(
  24.                           'method'  => 'POST',
  25.                           'header'  => 'Content-type: application/x-www-form-urlencoded',
  26.                           'content' => $postdata
  27.                       )
  28.         );
  29.         
  30.         $context = stream_context_create($opts);
  31.         $result = file_get_contents($url, false, $context);
  32.         return $result;
  33.     }
  34.     public static function post3($host,$path,$query,$others=''){//fsocket
  35.         $post="POST $path HTTP/1.1\r\nHost: $host\r\n";
  36.         $post.="Content-type: application/x-www-form-";
  37.         $post.="urlencoded\r\n${others}";
  38.         $post.="User-Agent: Mozilla 4.0\r\nContent-length: ";
  39.         $post.=strlen($query)."\r\nConnection: close\r\n\r\n$query";
  40.         $h=fsockopen($host,80);
  41.         fwrite($h,$post);
  42.         for($a=0,$r='';!$a;){
  43.                 $b=fread($h,8192);
  44.                 $r.=$b;
  45.                 $a=(($b=='')?1:0);
  46.             }
  47.         fclose($h);
  48.         return $r;
  49.     }
  50. }
复制代码
三种, PHP, POST


陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn