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 相关文章推荐
最小化数据传输――在客户端存储数据
Oct 09 PHP
PHP iconv 函数转gb2312的bug解决方法
Oct 11 PHP
php cache类代码(php数据缓存类)
Apr 15 PHP
php中实现简单的ACL 完结篇
Sep 07 PHP
PHP函数eval()介绍和使用示例
Aug 20 PHP
php读取目录及子目录下所有文件名的方法
Oct 20 PHP
浅谈php命令行用法
Feb 04 PHP
PHP获取文件夹大小函数用法实例
Jul 01 PHP
PHP伪造来源HTTP_REFERER的方法实例详解
Jul 06 PHP
PHP 7.0新增加的特性介绍
Jun 08 PHP
Laravel框架路由设置与使用示例
Jun 12 PHP
PHP实现获取ip地址的5种方法,以及插入用户登录日志操作示例
Feb 28 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
从零开始 教你如何搭建Discuz!4.1论坛
2006/07/07 PHP
将文件夹压缩成zip文件的php代码
2009/12/14 PHP
计算php页面运行时间的函数介绍
2013/07/01 PHP
php自动更新版权信息显示的方法
2015/06/19 PHP
thinkPHP5框架实现基于ajax的分页功能示例
2018/06/12 PHP
使用jQuery模板来展现json数据的代码
2010/10/22 Javascript
jquery插件开发注意事项小结
2013/06/04 Javascript
利用javascript实现web页面中指定区域打印
2013/10/30 Javascript
jQuery中slideUp 和 slideDown 的点击事件
2015/02/26 Javascript
JS日期加减,日期运算代码
2015/11/05 Javascript
jquery制作属于自己的select自定义样式
2015/11/23 Javascript
谈一谈JS消息机制和事件机制的理解
2016/04/14 Javascript
使用 NodeJS+Express 开发服务端的简单介绍
2017/04/07 NodeJs
关于jQuery库冲突的完美解决办法
2017/05/20 jQuery
javascript实现二叉树遍历的代码
2017/06/08 Javascript
Vue.js中轻松解决v-for执行出错的三个方案
2017/06/09 Javascript
浅谈vuex 闲置状态重置方案
2018/01/04 Javascript
jQuery滚动条美化插件nicescroll简单用法示例
2018/04/18 jQuery
详解Nuxt.js部署及踩过的坑
2018/08/07 Javascript
使用react render props实现倒计时的示例代码
2018/12/06 Javascript
微信小程序云开发详细教程
2019/05/16 Javascript
Vue基础配置讲解
2019/11/29 Javascript
Python深拷贝与浅拷贝用法实例分析
2019/05/05 Python
python开头的coding设置方法
2019/08/08 Python
Python 元组操作总结
2019/09/18 Python
浅谈python已知元素,获取元素索引(numpy,pandas)
2019/11/26 Python
Django数据库操作之save与update的使用
2020/04/01 Python
keras在构建LSTM模型时对变长序列的处理操作
2020/06/29 Python
CSS3中animation实现流光按钮效果
2020/12/21 HTML / CSS
使用HTML5 Canvas API中的clip()方法裁剪区域图像
2016/03/25 HTML / CSS
阿根廷在线宠物商店:Puppis
2018/03/23 全球购物
印度化妆品购物网站:Nykaa
2018/07/22 全球购物
家长学校实施方案
2014/03/15 职场文书
公司内部升职自荐信
2015/03/27 职场文书
SQL解决未能删除约束问题drop constraint
2022/05/30 SQL Server
python实现一个简单的贪吃蛇游戏附代码
2022/06/28 Python