ホームページ >バックエンド開発 >PHPチュートリアル >PHPでgetおよびpostリクエストを送信するためのいくつかのメソッド
転載元: http://blog.csdn.net/haha00217/article/details/7969504
方法 1: file_get_contents を使用して取得モードでコンテンツを取得する
1 <?php 2 $url='http://www.domain.com/'; 3 $html = file_get_contents($url); 4 echo $html; 5 ?>
方法 2: fopen を使用して URL を開き、get モードでコンテンツを取得します
1 <?php 2 $fp = fopen($url, 'r'); 3 //返回请求流信息(数组:请求状态,阻塞,返回值是否为空,返回值http头等) 4 stream_get_meta_data($fp); 5 while(!feof($fp)) { 6 $result .= fgets($fp, 1024); 7 } 8 echo "url body: $result"; 9 fclose($fp); 10 ?>
方法 3: file_get_contents 関数を使用して post モードで URL を取得します
1 <?php 2 $data = array ('foo' => 'bar'); 3 4 //生成url-encode后的请求字符串,将数组转换为字符串 5 $data = http_build_query($data); 6 $opts = array ( 7 <span style="white-space:pre"> </span>'http' => array ( 8 <span style="white-space:pre"> </span>'method' => 'POST', 9 <span style="white-space:pre"> </span>'header'=> "Content-type: application/x-www-form-urlencoded\r\n" . 10 <span style="white-space:pre"> </span>"Content-Length: " . strlen($data) . "\r\n", 11 <span style="white-space:pre"> </span>'content' => $data 12 <span style="white-space:pre"> </span>) 13 ); 14 //生成请求的句柄文件 15 $context = stream_context_create($opts); 16 $html = file_get_contents('http://localhost/e/admin/test.html', false, $context); 17 echo $html; 18 ?>
方法 4: 使用 fsockopen 関数は URL を開き、get モードで完全なデータを取得します。 fsockopen では、PHP.ini のallow_url_fopen オプションがオンになっている必要があります。
方法 5: fsockopen 関数 url で開き、POST モードでヘッダーと本文を含む完全なデータを取得します
1 <?php 2 function get_url ($url,$cookie=false) 3 { 4 $url = parse_url($url); 5 $query = $url[path]."?".$url[query]; 6 echo "Query:".$query; 7 $fp = fsockopen( $url[host], $url[port]?$url[port]:80 , $errno, $errstr, 30); 8 if (!$fp) { 9 return false; 10 } else { 11 $request = "GET $query HTTP/1.1\r\n"; 12 $request .= "Host: $url[host]\r\n"; 13 $request .= "Connection: Close\r\n"; 14 if($cookie) $request.="Cookie: $cookie\n"; 15 $request.="\r\n"; 16 fwrite($fp,$request); 17 while()) { 18 $result .= @fgets($fp, 1024); 19 } 20 fclose($fp); 21 return $result; 22 } 23 } 24 //获取url的html部分,去掉header 25 function GetUrlHTML($url,$cookie=false) 26 { 27 $rowdata = get_url($url,$cookie); 28 if($rowdata) 29 { 30 $body= stristr($rowdata,"\r\n\r\n"); 31 $body=substr($body,4,strlen($body)); 32 return $body; 33 } 34 return false; 35 } 36 ?>
方法 6: Curl ライブラリを使用する前に、curl ライブラリを使用します。 php.ini が開かれているかどうかを確認する必要があるかもしれません。