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 相关文章推荐
实现dedecms全站URL静态化改造的代码
Mar 29 PHP
php ignore_user_abort与register_shutdown_function 使用方法
Jun 14 PHP
php 日期和时间的处理-郑阿奇(续)
Jul 04 PHP
php函数array_merge用法一例(合并同类数组)
Feb 03 PHP
解析使用ThinkPHP应该掌握的调试手段
Jun 20 PHP
PHP中VC6、VC9、TS、NTS版本的区别与用法详解
Oct 26 PHP
php define的第二个参数使用方法
Nov 04 PHP
ThinkPHP中的常用查询语言汇总
Aug 22 PHP
浅析Yii2中GridView常见操作
Apr 22 PHP
PHP list() 将数组中的值赋给变量的简单实例
Jun 13 PHP
深入浅析PHP的session反序列化漏洞问题
Jun 15 PHP
在laravel框架中使用model层的方法
Oct 08 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
Yii扩展组件编写方法实例分析
2015/06/29 PHP
php无限分类使用concat如何实现
2015/11/05 PHP
javascript读取RSS数据
2007/01/20 Javascript
Locate a File Using a File Open Dialog Box
2007/06/18 Javascript
JavaScript 学习笔记(十五)
2010/01/28 Javascript
javascript中使用replaceAll()函数实现字符替换的方法
2010/12/25 Javascript
JQuery实现点击div以外的位置隐藏该div窗口
2013/09/13 Javascript
jquery实现可拖动DIV自定义保存到数据的实例
2013/11/20 Javascript
利用js动态添加删除table行的示例代码
2013/12/16 Javascript
sails框架的学习指南
2014/12/22 Javascript
js变形金刚文字特效代码分享
2015/08/20 Javascript
深入理解jQuery之防止冒泡事件
2016/05/24 Javascript
详解JS中遍历语法的比较
2017/04/07 Javascript
javascript 的变量、作用域和内存问题
2017/04/19 Javascript
详解AngularJs ui-router 路由的简单介绍
2017/04/26 Javascript
JS动态插入脚本和插入引用外部链接脚本的方法
2018/05/21 Javascript
jQuery实现导航样式布局操作示例【可自定义样式布局】
2018/07/24 jQuery
vue form check 表单验证的实现代码
2018/12/09 Javascript
vue 地图可视化 maptalks 篇实例代码详解
2019/05/21 Javascript
JavaScript跳出循环的三种方法(break, return, continue)
2019/07/30 Javascript
javascript合并两个数组最简单的实现方法
2019/09/14 Javascript
layui 解决富文本框form表单提交为空的问题
2019/10/26 Javascript
Python实现脚本锁功能(同时只能执行一个脚本)
2017/05/10 Python
python实现扫描ip地址的小程序
2019/04/16 Python
Python实现鼠标自动在屏幕上随机移动功能
2020/03/14 Python
Pythonic版二分查找实现过程原理解析
2020/08/11 Python
Nisbets爱尔兰:英国最大的厨房和餐饮设备供应商
2019/01/26 全球购物
Lowe’s加拿大:家居装修、翻新和五金店
2019/12/06 全球购物
销售心得体会
2014/01/02 职场文书
优秀共产党员先进事迹
2014/01/27 职场文书
技术总监管理岗位职责
2014/03/09 职场文书
中学生评语大全
2014/04/18 职场文书
模具专业自荐信
2014/05/29 职场文书
第二次离婚起诉书
2015/05/18 职场文书
2015年小学体育工作总结
2015/05/22 职场文书
5行Python代码实现一键批量扣图
2021/06/29 Python