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

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

 代码如下 复制代码

// 获取评论次数,参数是文章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方式获取内容:

 代码如下 复制代码
<?php

$url='http://www.jquerycn.cn/';

$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.jquerycn.cn/');

curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1);

curl_setopt ($ch, CURLOPT_CONNECTTIMEOUT, $timeout);

$file_contents = curl_exec($ch);

curl_close($ch);

echo $file_contents;

php里面get和post请求,php中GET和POST请求发送几种方法总结相关推荐

  1. 在电商运营中与客户建立信任的4种方法

    在电商运营中与客户建立信任的4种方法 在众多人的财务和消费行为数据被泄露或非法收集之后,网络购物所带来的风险已成为消费者最为关注的问题之一. 建立客户的信任绝对不是一件容易的事情,尤其是对于电商企业来 ...

  2. JS获取URL中参数值(QueryString)的4种方法分享

    http://www.jb51.net/article/48942.htm JS获取URL中参数值(QueryString)的4种方法分享 作者: 字体:[增加 减小] 类型:转载 今天碰到要在一个页 ...

  3. 在HTML中使用CSS美化网页的三种方法

    在HTML中使用CSS美化网页的三种方法 CSS是Cascading Style Sheets(级联样式表)的缩写,CSS是一种样式表语言,用于为HTML文档定义布局.例如,CSS涉及字体.颜色.边距 ...

  4. shell实例第19讲:一个脚本中调用另一个脚本的3种方法

    在Shell脚本中调用另一个脚本(3种方法) 准备:主脚本是second.sh,主脚本中调用first.sh 方法1:exec(1)执行方式:exec /home/weibo/shell_test/s ...

  5. js中当等于最小值是让代码不执行_网页中JS函数自动执行常用三种方法

    本文为大家分享了在网页中JS函数自动执行常用方法,供大家参考,具体内容如下 一.JS方法 1.最简单的调用方式,直接写到html的body标签里面: 2.在JS语句调用: function myfun ...

  6. java中批次号_在一个批次中插入多笔记录的几种方法

    插入数据库方法很多,下面Insus.NET列举几种方法,看看你常用的是哪一种: 创建一张表: CREATE TABLE [dbo].[Network_Info] ( [ID] INT NOT NULL ...

  7. ABAP中创建动态内表的三种方法(转载)

    BAP中创建动态内表的三种方法 第一种: 如果我们需要的动态内表字段或者动态工作区和数据字典中的类型一致,可以直接使用CREATE DATA生成,当然也可以是自定义类型. 比如要产生和数据表MARA结 ...

  8. android启动其他app的服务器,Android中通过外部程序启动App的三种方法

    这篇文章主要介绍了Android中通过外部程序启动App的三种方法, 本文讲解了直接通过包名. 通过自定义的Action. 通过Scheme三种方法,并分别给出操作代码,需要的朋友可以参考下 ==== ...

  9. php页面文件后缀名,PHP中获取文件扩展名的N种方法

    PHP中获取文件扩展名的N种方法 从网上收罗的,基本上就以下这几种方式: 第1种方法: function get_extension($file) { substr(strrchr($file, '. ...

最新文章

  1. Python3基础笔记---面向对象
  2. hdu 2006 求奇数的乘积(c语言)
  3. 工厂方法模式和简单工厂模式的区别
  4. git 本地代码到github(转)
  5. github 使用记录
  6. python代做收入-代写CSE205留学生程序 代做Python实验程序
  7. 按位异或运算和求反运算解析
  8. java指针的数组_java 指针 数组的使用
  9. mysql-用正则表达式进行搜索
  10. 前端们等了8年!HTML5标准终于完工了
  11. coreseek实时索引更新之增量索引
  12. python set和frozenset 异同点学习记录
  13. PHP Filesysten函数
  14. 【CMake】CMakeList编写整理
  15. Linux命令详解之 cat
  16. Unity3d的场景音效静音处理
  17. 顺丰bsp物流下单php接口测试,golang 调用顺丰API接口测试-Go语言中文社区
  18. 7723Java斗破苍穹,斗破苍穹:斗帝空间开启,药尘入内寻夺焚决!
  19. Mac平台配置OpenGL(glut,glew)
  20. Java的JDK和JRE

热门文章

  1. Android开发:getSupportFragmentManager()不可用
  2. 《人性的弱点》--如欲采蜜,勿蹴蜂房。
  3. Class.forName(com.mysql.jdbc.driver);
  4. 最多添加3个标签,每个标签最长6字,空格或逗号隔开
  5. [转载] java中对象作为参数传递给一个方法,到底是值传递,还是引用传递
  6. vue项目实现详情页后退缓存之前的数据
  7. CSRF(跨站请求伪造)攻击 --
  8. Vuex初级入门及简单案例
  9. React Native常用第三方汇总
  10. iOS 让UIButton根据文字内容自动计算宽高