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 相关文章推荐
检查url链接是否已经有参数的php代码 添加 ? 或 &
Feb 09 PHP
php中计算中文字符串长度、截取中文字符串的函数代码
Aug 09 PHP
免费手机号码归属地API查询接口和PHP使用实例分享
Apr 10 PHP
ThinkPHP学习笔记(一)ThinkPHP部署
Jun 22 PHP
一张表搞清楚php is_null、empty、isset的区别
Jul 07 PHP
php字符串比较函数用法小结(strcmp,strcasecmp,strnatcmp及strnatcasecmp)
Jul 18 PHP
使用ThinkPHP的自动完成实现无限级分类实例详解
Sep 02 PHP
PHP实现ASCII码与字符串相互转换的方法
Apr 29 PHP
thinkPHP框架实现的短信接口验证码功能示例
Jun 20 PHP
Laravel中的chunk组块结果集处理与注意问题
Aug 15 PHP
CodeIgniter框架钩子机制实现方法【hooks类】
Aug 21 PHP
PHP实现15位身份证号转18位的方法分析
Oct 16 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
基于PHP给大家讲解防刷票的一些技巧
2015/11/18 PHP
Linux系统中设置多版本PHP共存配合Nginx服务器使用
2015/12/21 PHP
php文件系统处理方法小结
2016/05/23 PHP
Docker搭建自己的PHP开发环境
2018/02/24 PHP
PHP实现的62进制转10进制,10进制转62进制函数示例
2019/06/06 PHP
利用JQuery为搜索栏增加tag提示
2009/06/22 Javascript
JavaScript 操作table,可以新增行和列并且隔一行换背景色代码分享
2013/07/05 Javascript
js关于命名空间的函数实例
2015/02/05 Javascript
在线所见即所得HTML编辑器的实现原理浅析
2015/04/25 Javascript
用JavaScript显示浏览器客户端信息的超相近教程
2015/06/18 Javascript
Jquery中使用show()与hide()方法动画显示和隐藏图片
2015/10/08 Javascript
js 弹出对话框(遮罩)透明,可拖动的简单实例
2016/07/11 Javascript
jQuery实现删除li节点的方法
2016/12/06 Javascript
详解Angular的内置过滤器和自定义过滤器【推荐】
2016/12/26 Javascript
vue2滚动条加载更多数据实现代码
2017/01/10 Javascript
three.js中3D视野的缩放实现代码
2017/11/16 Javascript
JavaScript ES6箭头函数使用指南
2018/12/30 Javascript
vue基本使用--refs获取组件或元素的实例
2019/11/07 Javascript
python网络编程学习笔记(五):socket的一些补充
2014/06/09 Python
python在linux系统下获取系统内存使用情况的方法
2015/05/11 Python
Python实现的摇骰子猜大小功能小游戏示例
2017/12/18 Python
python lxml中etree的简单应用
2019/05/10 Python
Python Django模板之模板过滤器与自定义模板过滤器示例
2019/10/18 Python
python实现布隆过滤器及原理解析
2019/12/08 Python
解决Opencv+Python cv2.imshow闪退问题
2020/04/24 Python
中国高端家电购物商城:顺电
2018/03/04 全球购物
私有程序集与共享程序集有什么区别
2013/04/05 面试题
KTV的创业计划书范文
2014/02/02 职场文书
课程改革实施方案
2014/03/16 职场文书
《夹竹桃》教学反思
2014/04/20 职场文书
认错检讨书
2014/10/02 职场文书
党的群众路线教育实践活动个人整改措施材料
2014/11/04 职场文书
先进班集体申报材料
2014/12/26 职场文书
民间借贷纠纷案件代理词
2015/05/26 职场文书
助学金申请书该怎么写?
2019/07/16 职场文书
MySQL 自动填充 create_time 和 update_time
2022/05/20 MySQL