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 相关文章推荐
PHP5.2下chunk_split()函数整数溢出漏洞 分析
Jun 06 PHP
PHP 的ArrayAccess接口 像数组一样来访问你的PHP对象
Oct 12 PHP
php连接数据库代码应用分析
May 29 PHP
你可能不知道PHP get_meta_tags()函数
May 12 PHP
PHP下载文件的函数实例代码
May 18 PHP
Yii使用DeleteAll连表删除出现报错问题的解决方法
Jul 14 PHP
laravel中的错误与日志用法详解
Jul 26 PHP
PHP编写daemon process 实例详解
Nov 13 PHP
在Laravel的Model层做数据缓存的实现
Sep 26 PHP
详解Laravel设置多态关系模型别名的方式
Oct 17 PHP
Laravel基础-关于引入公共文件的两种方式
Oct 18 PHP
解决Laravel使用验证时跳转到首页的问题
Nov 17 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
一个程序下载的管理程序(四)
2006/10/09 PHP
PHP 强制性文件下载功能的函数代码(任意文件格式)
2010/05/26 PHP
php多功能图片处理类分享(php图片缩放类)
2014/03/14 PHP
详解PHP中instanceof关键字及instanceof关键字有什么作用
2015/11/05 PHP
简单PHP会话(session)说明介绍
2016/08/21 PHP
PHP多维数组元素操作类的方法
2016/11/14 PHP
PHP Swoole异步读取、写入文件操作示例
2019/10/24 PHP
PHP中的异常处理机制深入讲解
2020/11/10 PHP
JavaScript让网页出现渐隐渐显背景颜色的方法
2015/04/21 Javascript
详解jQuery中的元素的属性和相关操作
2015/08/14 Javascript
jQuery通过写入cookie实现更换网页背景的方法
2016/04/15 Javascript
JS图片放大效果简单实现代码
2016/09/08 Javascript
Node.js利用Net模块实现多人命令行聊天室的方法
2016/12/23 Javascript
浅析JS中常用类型转换及运算符表达式
2017/07/23 Javascript
BootStrap的双日历时间控件使用
2017/07/25 Javascript
Linux下编译安装MySQL-Python教程
2015/02/02 Python
wxpython中自定义事件的实现与使用方法分析
2016/07/21 Python
详解python中xlrd包的安装与处理Excel表格
2016/12/16 Python
python数据结构之列表和元组的详解
2017/09/23 Python
Python_LDA实现方法详解
2017/10/25 Python
使用 Python 实现微信群友统计器的思路详解
2018/09/26 Python
Python子类继承父类构造函数详解
2019/02/19 Python
numpy 返回函数的上三角矩阵实例
2019/11/25 Python
Python如何定义接口和抽象类
2020/07/28 Python
丝芙兰加拿大官方网站:SEPHORA加拿大
2018/11/20 全球购物
法国设计制造的扫帚和刷子:Andrée Jardin
2018/12/06 全球购物
莫斯科大型旅游休闲商品超市:Camping.ru
2020/09/16 全球购物
杠杆的科学教学反思
2014/01/10 职场文书
长安大学毕业生自我鉴定
2014/01/17 职场文书
关于迟到的检讨书
2014/01/26 职场文书
《纸船和风筝》教学反思
2014/02/15 职场文书
《观舞记》教学反思
2014/04/16 职场文书
2014领导干部学习焦裕禄同志先进事迹思想汇报
2014/09/19 职场文书
2016年度员工工作表现评语
2015/12/02 职场文书
Python中itertools库的四个函数介绍
2022/04/06 Python
Redis sentinel哨兵集群的实现步骤
2022/07/15 Redis