php 模拟POST|GET操作实现代码

 更新时间:2010年07月20日 01:42:54   作者:  
很早的时候,参加面试,需要使用php的函数模拟一个post访问。尽管对php很熟悉,但是由于面试之前很长时间没有使用php语言,所以就没有答上来。
最近开发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获取文件夹内文件数的方法

    这篇文章主要介绍了PHP获取文件夹内文件数的方法,涉及php操作文件夹及文件的技巧,具有一定参考借鉴价值,需要的朋友可以参考下
    2015-03-03
  • PHP使用Pear发送邮件(Windows环境)

    PHP使用Pear发送邮件(Windows环境)

    这篇文章主要介绍了在Windows环境下,PHP使用Pear发送邮件的实现方法,以及Windows下安装PHP Pear的详细步骤,感兴趣的小伙伴们可以参考一下
    2016-01-01
  • php实现在线通讯录功能(附源码)

    php实现在线通讯录功能(附源码)

    这篇文章主要为大家详细介绍了php实现在线通信录功能的具体代码,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2016-05-05
  • PHP版QQ互联OAuth示例代码分享

    PHP版QQ互联OAuth示例代码分享

    这篇文章主要介绍了PHP版QQ互联OAuth示例代码分享,十分的详细使用,有需要的小伙伴可以参考下。
    2015-07-07
  • php读取30天之内的根据算法排序的代码

    php读取30天之内的根据算法排序的代码

    今天做一个读取30天内,如果推荐则×20+收藏+点击的算法排序的代码
    2008-04-04
  • PHP设计模式之工厂模式详解

    PHP设计模式之工厂模式详解

    这篇文章主要为大家详细介绍了PHP设计模式之工厂模式,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-10-10
  • PHP实现合并两个有序数组的方法分析

    PHP实现合并两个有序数组的方法分析

    这篇文章主要介绍了PHP实现合并两个有序数组的方法,结合实例形式分析了php针对数组的合并、遍历、排序、去重等常见操作技巧,需要的朋友可以参考下
    2017-12-12
  • 浅谈本地WAMP环境的搭建

    浅谈本地WAMP环境的搭建

    所谓的WAMP环境就是Windows+Apache+Mysql+PHP开发运行环境啦,这对于我们学习php开发来说是最基础的一步了,虽然说现在集成开发环境一抓一大把,但是作为基本功还是必须要学到手的。
    2015-05-05
  • PHP实现随机发扑克牌

    PHP实现随机发扑克牌

    这篇文章主要为大家详细介绍了PHP实现随机发扑克牌,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2020-04-04
  • PHP define函数的使用说明

    PHP define函数的使用说明

    PHP预先定义了几个常量,并提供了一种机制在运行时自己定义。常量和变量基本上是一样的,不同的是:常量必须用DEFINE函数定义,常量一旦定义好,就不能被重新定义了。
    2008-08-08

最新评论