PHP中几种HTTP请求的实现方法及比较: file_get_contents vs. cURL

本文介绍了PHP中三种常用的HTTP请求方法:文件流的方式(file_get_contents)、cURL方式及PECL_HTTP扩展。通过实例展示了如何使用文件流进行POST请求,并处理响应数据。

 

在PHP中有多种进行HTTP请求的方法, 本文中介绍最常用的三种:

1)  文件流的方式:file_get_contents , 这种方式是PHP自带的。

2)cURL方式: cURL是PHP的一个第三方库 , 目前PHP4.0以上都自带cURL lib.

3) PECL_HTTP 扩展: 这是一个PECL的extension, 需要安装才能使用

1. 文件流的方式: PHP的文件流本身就支持HTTP协议,因此我们可以象使用文件一样来进行HTTP的操作
这种方式适合比较简单的HTTP GET 或 POST请求, 但对于一些复杂的应用场景中的HTTP 请求还是有些力不从心的。

if (!isset($_GET["tx"])) {
       header("Location: http://www.cubebackup.com");
       exit() ;
   }

   $post_array = array (
       "cmd" => "_notify-synch",
       "tx" => $_GET["tx"],
       "at" => PDT_IDTOKEN
   );

   $post_string = http_build_query($post_array);

   $opts = array(
       'http' => array(
           'method' => "POST",
           'header' => "Content-Type: application/x-www-form-urlencoded",
           'content'=> $post_string
       )
   );

   $context = stream_context_create($opts);
   $pdt_response = file_get_contents(PAYPALURL, false, $context);

   if ($pdt_response === FALSE) {
       header("Location: http://www.cubebackup.com");
       exit();
   }

   $response_array = preg_split("/\s+/" ,$pdt_response);
   $pdt_data = array();

   if ($response_array[0] === "SUCCESS") {           
       foreach ($response_array as $value) {
           $pdt_pair = explode('=', $value);
           if (isset($pdt_pair[1])) {
               $pdt_data[$pdt_pair[0]] = urldecode($pdt_pair[1]);
           }
          //这里可以对数据进行处理,比如写入数据库,或者显示给用户等。。  
      
       }
   } else {
       header("Location: http://www.cubebackup.com");
       exit();
   }

 

 

 

http://www.androiddev.net/php-http-curl-vs-pecl/

转载于:https://my.oschina.net/u/214052/blog/413455

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值