php 模拟POST|GET操作实现代码


Posted in PHP onJuly 20, 2010

最近开发social game,发现使用这个东西还是比较平凡,这里做个总结,一来为自己留点记忆,另外希望对大家有帮助.

首先来看看需求,如果我们开发facebook上social game,需要调用它的接口来获得用户在facebook上的好友信息。这个时候我们就要访问facebook提供的一个地址呢,当然你在访问他的时候,他需要对你的访问做验证,防止非法请求。这个时候就得向其post|get一些参数。
如下面的地址:

$url_with_get= "http://api.facebook.com/restserver.php?method=facebook.friends.get&session_key=&api_key=1232121311&v=1.0"; 
$post = array('sig'=>12312123234353);

怎么样从这个地址中获得数据,简单地介绍一下下面的代码:
if(function_exists('curl_init')) 
{ 
$ch = curl_init(); 

curl_setopt($ch, CURLOPT_URL, $url_with_get); 

curl_setopt($ch, CURLOPT_POST, 1); 

curl_setopt($ch, CURLOPT_POSTFIELDS, $post); 

curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); 

$result = curl_exec($ch); 

curl_close($ch); 
} 
else 
{ 

$content = http_build_query($post) 

$content_length = strlen($content); 

$context = 

array('http' => 
array('method' => 'POST', 
'user_agent' => $user_agent, 
'header' => 'Content-Type: ' . $content_type . "\r\n" . 
'Content-Length: ' . $content_length, 
'content' => $content)); 
$context_id = stream_context_create($context); 
$sock = fopen($url_with_get, 'r', false, $context_id); 
$result = ''; 
if ($sock) 

{ 


while (!feof($sock)) 

$result .= fgets($sock, 4096); 

fclose($sock); 
} 
return $result; 
} 
}

上面的代码使用两种方式来调facebook的接口,第一种县判断用户的环境是否开启了curl库,开启了这个库,就采用这种方式来获取请求。里面详细的参数讲解大家可以参考手册。
这里提示一点,由于我们通常情况下需要获得调用接口的返回结果,所以要设置CURLOPT_RETURNTRANSFER这个值,将结果返回到变量中。
第二种方式是直观,将url请求转化为文件流来处理。
PHP 相关文章推荐
php 常用类整理
Dec 23 PHP
PHP开发不能违背的安全规则 过滤用户输入
May 01 PHP
PHP中数组的三种排序方法分享
May 07 PHP
PHP中ini_set和ini_get函数的用法小结
Feb 18 PHP
PHP的Yii框架的基本使用示例
Aug 21 PHP
PHP实现适用于自定义的验证码类
Jun 15 PHP
php结合redis高并发下发帖、发微博的实现方法
Dec 15 PHP
thinkphp项目如何自定义微信分享描述内容
Feb 20 PHP
PHP使用Nginx实现反向代理
Sep 20 PHP
PHP正则判断一个变量是否为正整数的方法
Feb 27 PHP
php常用的工具开发整理
Sep 26 PHP
PHP学习记录之常用的魔术常量详解
Dec 12 PHP
UCenter中的一个可逆加密函数authcode函数代码
Jul 20 #PHP
PHP连接SQLServer2005 的问题解决方法
Jul 19 #PHP
在Windows系统上安装PHP运行环境文字教程
Jul 19 #PHP
ajax实现无刷新分页(php)
Jul 18 #PHP
php将会员数据导入到ucenter的代码
Jul 18 #PHP
php 无限级数据JSON格式及JS解析
Jul 17 #PHP
php下使用strpos需要注意 === 运算符
Jul 17 #PHP
You might like
图解上海144收音机
2021/03/02 无线电
某大型网络公司应聘时的笔试题目附答案
2008/03/27 PHP
设置php页面编码的两种方法示例介绍
2014/03/03 PHP
php实现singleton()单例模式实例
2014/11/06 PHP
PHP jpgraph库的配置及生成统计图表:折线图、柱状图、饼状图
2017/05/15 PHP
php将从数据库中获得的数据转换成json格式并输出的方法
2018/08/21 PHP
tp5 实现列表数据根据状态排序
2019/10/18 PHP
js 静态动态成员 and 信息的封装和隐藏
2011/05/29 Javascript
利用JS进行图片的切换即特效展示图片
2013/12/03 Javascript
深入了解JavaScript中的Symbol的使用方法
2015/07/28 Javascript
jquery 将当前时间转换成yyyymmdd格式的实现方法
2016/06/01 Javascript
Angular.js自定义指令学习笔记实例
2017/02/24 Javascript
jQuery选择器之属性过滤选择器详解
2017/09/28 jQuery
JS笛卡尔积算法与多重数组笛卡尔积实现方法示例
2017/12/01 Javascript
jquery.picsign图片标注组件实例详解
2018/02/02 jQuery
vue-router传递参数的几种方式实例详解
2018/11/13 Javascript
node.js基于socket.io快速实现一个实时通讯应用
2019/04/23 Javascript
Vue中Table组件行内右键菜单实现方法(基于 vue + AntDesign)
2019/11/21 Javascript
JS实现前端动态分页码代码实例
2020/06/02 Javascript
Vue在H5 项目中使用融云进行实时个人单聊通讯
2020/12/14 Vue.js
vue 使用rules对表单字段进行校验的步骤
2020/12/25 Vue.js
深入理解Python爬虫代理池服务
2018/02/28 Python
python获取命令行输入参数列表的实例代码
2018/06/23 Python
django数据关系一对多、多对多模型、自关联的建立
2019/07/24 Python
解决django 新增加用户信息出现错误的问题
2019/07/28 Python
CSS3中的Media Queries学习笔记
2016/05/23 HTML / CSS
澳大利亚最大的女装零售商:Millers
2017/09/10 全球购物
大学三年计划书范文
2014/04/30 职场文书
品酒会策划方案
2014/05/26 职场文书
2014年国庆节寄语
2014/09/19 职场文书
国家税务局领导班子对照检查材料思想汇报
2014/10/04 职场文书
党校毕业个人总结
2015/02/28 职场文书
前台岗位职责范本
2015/04/16 职场文书
歼十出击观后感
2015/06/11 职场文书
股东合作协议书模板2篇
2019/11/05 职场文书
详解Go语言中Get/Post请求测试
2022/06/01 Golang