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脚本的10个技巧(6)
Oct 09 PHP
隐藏X-Space个人空间下方版权方法隐藏X-Space个人空间标题隐藏X-Space个人空间管理版权方法
Feb 22 PHP
使用php检测用户当前使用的浏览器是否为IE浏览器
Dec 03 PHP
PHP实现绘制3D扇形统计图及图片缩放实例
Oct 01 PHP
php站内搜索关键词变亮的实现方法
Dec 30 PHP
PHP中实现crontab代码分享
Mar 26 PHP
CI框架常用方法小结
May 17 PHP
PHP基于方差和标准差计算学生成绩的稳定性示例
Jul 04 PHP
php检查函数必传参数是否存在的实例详解
Aug 28 PHP
PHP使用OB缓存实现静态化功能示例
Mar 23 PHP
如何在Laravel5.8中正确地应用Repository设计模式
Nov 26 PHP
关于PHP中interface的用处详解
Jul 26 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设计模式之命令模式的应用详解
2013/05/21 PHP
php使用imagick模块实现图片缩放、裁剪、压缩示例
2014/04/17 PHP
php过滤HTML标签、属性等正则表达式汇总
2014/09/22 PHP
smarty内置函数config_load用法实例
2015/01/22 PHP
PHP有序表查找之插值查找算法示例
2018/02/10 PHP
php微信开发之图片回复功能
2018/06/14 PHP
javascript 构造函数强制调用经验总结
2012/12/02 Javascript
JQuery中对Select的option项的添加、删除、取值
2013/08/25 Javascript
JavaScript新窗口与子窗口传值详解
2014/02/11 Javascript
JQuery实现简单的图片滑动切换特效
2015/11/22 Javascript
NodeJs的优势和适合开发的程序
2016/08/14 NodeJs
Web制作验证码功能实例代码
2017/06/19 Javascript
Vue自定义全局Toast和Loading的实例详解
2019/04/18 Javascript
利用es6 new.target来对模拟抽象类的方法
2019/05/10 Javascript
微信小程序开发之左右分栏效果的实例代码
2019/05/20 Javascript
bootstrap Table实现合并相同行
2019/07/19 Javascript
vue动态设置页面title的方法实例
2020/08/23 Javascript
vue中后端做Excel导出功能返回数据流前端的处理操作
2020/09/08 Javascript
Vue中使用wangeditor富文本编辑的问题
2021/02/07 Vue.js
Python的Django中django-userena组件的简单使用教程
2015/05/30 Python
python getopt详解及简单实例
2016/12/30 Python
python3.6使用pickle序列化class的方法
2018/10/22 Python
Python用61行代码实现图片像素化的示例代码
2018/12/10 Python
python3 selenium自动化测试 强大的CSS定位方法
2019/08/23 Python
python实现逆滤波与维纳滤波示例
2020/02/26 Python
Django实现内容缓存实例方法
2020/06/30 Python
Java Unsafe类实现原理及测试代码
2020/09/15 Python
Python调用飞书发送消息的示例
2020/11/10 Python
阿迪达斯意大利在线商店:adidas意大利
2016/09/19 全球购物
Cinque网上商店:德国服装品牌
2019/03/17 全球购物
华为慧通笔试题
2016/04/22 面试题
文化活动实施方案
2014/03/28 职场文书
升学宴主持词
2014/04/02 职场文书
基于python的matplotlib制作双Y轴图
2021/04/20 Python
mysql对于模糊查询like的一些汇总
2021/05/09 MySQL
vue使用watch监听属性变化
2022/04/30 Vue.js