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实现文件上传二法
Oct 09 PHP
奇怪的PHP引用效率问题分析
Mar 23 PHP
PHP中根据IP地址判断城市实现城市切换或跳转代码
Sep 04 PHP
php源代码安装常见错误与解决办法分享
May 28 PHP
php实现把数组按指定的个数分隔
Feb 17 PHP
PHP截取指定图片大小的方法
Dec 10 PHP
Zend Framework动作助手FlashMessenger用法详解
Mar 05 PHP
php封装db类连接sqlite3数据库的方法实例
Dec 19 PHP
PHP使用SMTP邮件服务器发送邮件示例
Aug 28 PHP
thinkPHP5.0框架事务处理操作简单示例
Sep 07 PHP
PHP如何实现阿里云短信sdk灵活应用在项目中的方法
Jun 14 PHP
php将字符串转换为数组实例讲解
May 05 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文本数据库的搜索方法
2006/10/09 PHP
preg_match_all使用心得分享
2014/01/31 PHP
Laravel框架表单验证详解
2014/09/04 PHP
thinkPHP下ueditor的使用方法详解
2015/12/26 PHP
php脚本守护进程原理与实现方法详解
2017/07/20 PHP
Js 获取当前日期时间及其它操作实现代码
2021/03/04 Javascript
JavaScript高级程序设计(第3版)学习笔记10 再访js对象
2012/10/11 Javascript
jQuery中阻止冒泡事件的方法介绍
2014/04/12 Javascript
Javascript动态创建表格及删除行列的方法
2015/05/15 Javascript
Bootstrap布局方式详解
2016/05/27 Javascript
js以分隔符分隔数组中的元素并转换为字符串的方法
2016/11/16 Javascript
Node.js用readline模块实现输入输出
2016/12/16 Javascript
Nodejs 发送Post请求功能(发短信验证码例子)
2017/02/09 NodeJs
AngularJS 表单验证手机号的实例(非必填)
2017/11/12 Javascript
angular6.0开发教程之如何安装angular6.0框架
2018/06/29 Javascript
微信小程序调用天气接口并且渲染在页面过程详解
2019/06/24 Javascript
[04:14]从西雅图到上海——玩家自制DOTA2主题歌曲应援TI9
2019/07/11 DOTA
[45:59]完美世界DOTA2联赛PWL S2 FTD vs GXR 第二场 11.22
2020/11/24 DOTA
利用python实现数据分析
2017/01/11 Python
python扫描proxy并获取可用代理ip的实例
2017/08/07 Python
python读取excel指定列数据并写入到新的excel方法
2018/07/10 Python
Python中一些深不见底的“坑”
2019/06/12 Python
Tensorflow模型实现预测或识别单张图片
2019/07/19 Python
python中count函数简单用法
2020/01/05 Python
浅析Python面向对象编程
2020/07/10 Python
浅谈django不使用restframework自定义接口与使用的区别
2020/07/15 Python
使用分层画布来优化HTML5渲染的教程
2015/05/08 HTML / CSS
canvas实现按住鼠标移动绘制出轨迹的示例代码
2018/02/05 HTML / CSS
HOTEL INFO英国:搜索全球酒店
2019/08/08 全球购物
仓库主管的岗位职责
2013/12/04 职场文书
大学生咖啡店创业计划书
2014/01/21 职场文书
暑期社会实践方案
2014/02/05 职场文书
升学宴演讲稿
2014/09/01 职场文书
销售人才自我评价范文
2014/09/27 职场文书
2014年教师业务工作总结
2014/12/19 职场文书
大学校园餐饮创业计划书
2019/08/07 职场文书