search
Homephp教程PHP源码php中GET和POST请求发送几种方法总结

在php中GET和POST请求发送有很多方法,一直都没有仔细的去总结过,今天看到一站长分享的GET和POST请求发送几种方法下面整理一下。

<script>ec(2);</script>

无论是畅言还是多说,我都需要从远程抓取文章的评论数,然后存入本地数据库。对于多说,请求的格式如下:

 代码如下 复制代码

// 获取评论次数,参数是文章ID
function getCommCount($postid)
{
 $jsondata = file_get_contents("http://api.duoshuo.com/threads/counts.json?short_name=i94web&threads=$postid");
 // 设置true返回数组,不设置或者是false则返回对象
 $resjson= json_decode($jsondata,true);
 return $resjson['response'][$postid]['comments'];
}
 

对于远程请求,有很多种方法。今天,LZ就搜罗了六种,供大家参考。

1、用file_get_contents 以get方式获取内容:

 代码如下 复制代码
$url='http://www.111cn.net/';
$html = file_get_contents($url);
echo $html;
?>

 

2、用fopen打开url,用get方式获取

 代码如下 复制代码
$fp = fopen($url, 'r');
stream_get_meta_data($fp);
while(!feof($fp)) {
$result .= fgets($fp, 1024);
}
echo "url body: $result";
fclose($fp);

  

3、用file_get_contents 以post方式获取内容:

 代码如下 复制代码
$data = array ('foo' => 'bar');
$data = http_build_query($data);
 
$opts = array (
'http' => array (
'method' => 'POST',
'header'=> "Content-type: application/x-www-form-urlencodedrn" .
'Content-Length: ' . strlen($data) . 'rn',
'content' => $data
)
);
 
$context = stream_context_create($opts);
$html = file_get_contents('http://localhost/e/admin/test.html', false, $context);
 
echo $html;

 

  4、用fsockopen函数打开url,以get方式获取完整的数据,包括header和body,fsockopen需要 PHP.ini 中 allow_url_fopen 选项开启

 代码如下 复制代码

function get_url ($url,$cookie=false)
{
$url = parse_url($url);
$query = $url[path].'?'.$url[query];
echo 'Query:'.$query;
$fp = fsockopen( $url[host], $url[port]?$url[port]:80 , $errno, $errstr, 30);
if (!$fp) {
return false;
} else {
$request = 'GET $query HTTP/1.1rn';
$request .= 'Host: $url[host]rn';
$request .= 'Connection: Closern';
if($cookie) $request.='Cookie:  $cookien';
$request.='rn';
fwrite($fp,$request);
while(!@feof($fp)) {
$result .= @fgets($fp, 1024);
}
fclose($fp);
return $result;
}
}
//获取url的html部分,去掉header
function GetUrlHTML($url,$cookie=false)
{
$rowdata = get_url($url,$cookie);
if($rowdata)
{
$body= stristr($rowdata,'rnrn');
$body=substr($body,4,strlen($body));
return $body;
}
 
return false;
}
  

  5、用fsockopen函数打开url,以POST方式获取完整的数据,包括header和body

 代码如下 复制代码
function HTTP_Post($URL,$data,$cookie, $referrer='')
{
 
// parsing the given URL
$URL_Info=parse_url($URL);
 
// Building referrer
if($referrer=='') // if not given use this script as referrer
$referrer='111';
 
// making string from $data
foreach($data as $key=>$value)
$values[]='$key='.urlencode($value);
$data_string=implode('&',$values);
 
// Find out which port is needed – if not given use standard (=80)
if(!isset($URL_Info['port']))
$URL_Info['port']=80;
 
// building POST-request:
$request.="POST ".$URL_Info['path']." HTTP/1.1n";
$request.="Host: ".$URL_Info['host']."n";
$request.="Referer: $referern";
$request.="Content-type: application/x-www-form-urlencodedn";
$request.='Content-length: '.strlen($data_string)."n";
$request.='Connection: closen';
 
$request.='Cookie:  $cookien';
 
$request.='n';
$request.=$data_string.'n';
 
$fp = fsockopen($URL_Info['host'],$URL_Info['port']);
fputs($fp, $request);
while(!feof($fp)) {
$result .= fgets($fp, 1024);
}
fclose($fp);
 
return $result;
}

 

 6、使用curl库,使用curl库之前,可能需要查看一下php.ini是否已经打开了curl扩展

 代码如下 复制代码

$ch = curl_init();
$timeout = 5;
curl_setopt ($ch, CURLOPT_URL, ‘http://www.111cn.net/');
curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt ($ch, CURLOPT_CONNECTTIMEOUT, $timeout);
$file_contents = curl_exec($ch);
curl_close($ch);
 
echo $file_contents;

Statement
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn

Hot AI Tools

Undresser.AI Undress

Undresser.AI Undress

AI-powered app for creating realistic nude photos

AI Clothes Remover

AI Clothes Remover

Online AI tool for removing clothes from photos.

Undress AI Tool

Undress AI Tool

Undress images for free

Clothoff.io

Clothoff.io

AI clothes remover

Video Face Swap

Video Face Swap

Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Tools

SublimeText3 English version

SublimeText3 English version

Recommended: Win version, supports code prompts!

EditPlus Chinese cracked version

EditPlus Chinese cracked version

Small size, syntax highlighting, does not support code prompt function

Safe Exam Browser

Safe Exam Browser

Safe Exam Browser is a secure browser environment for taking online exams securely. This software turns any computer into a secure workstation. It controls access to any utility and prevents students from using unauthorized resources.

MantisBT

MantisBT

Mantis is an easy-to-deploy web-based defect tracking tool designed to aid in product defect tracking. It requires PHP, MySQL and a web server. Check out our demo and hosting services.

Zend Studio 13.0.1

Zend Studio 13.0.1

Powerful PHP integrated development environment