当前位置:首页 > PHP教程 > php函数 > 列表

PHP curl函数的使用示例 模拟curl请求

发布:smiling 来源: PHP粉丝网  添加日期:2015-04-15 16:27:10 浏览: 评论:0 

PHP curl函数是可以模仿用户进行访问页面了,下面来给各位介绍一下工作中常用的到的PHP curl函数示例.

PHP有着很好的curl机制,但是用起来总是不那么的令人满意,因为它需要好几步的操作和,好多难记的参数,这里我将php的curl封装了一下,使它不那么的复杂,代码如下:

  1. <?php 
  2. /** 
  3.  * php模拟curl请求 
  4.  * 
  5.  * @param string $url     请求的url 
  6.  * @param string $method  请求的方法, 默认POST 
  7.  * @param array  $data    请求传递的数据 
  8.  * @param array  $header  请求设置的头信息 
  9.  * @param int    $head    是否打印头信息 
  10.  * @param int    $body    是否打印body信息 
  11.  * @param int    $timeout 设置超时时间 
  12.  * 
  13.  * @return array 
  14.  */ 
  15. function curl($url,$method="POST",$data=array(),$header=array(),$head=0,$body=0,$timeout = 30) 
  16.     $ch = curl_init(); 
  17.     curl_setopt($ch, CURLOPT_URL, $url); 
  18.     if (strpos($url"https") !== false ) { 
  19.         curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0); 
  20.         curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0); 
  21.         if (isset($_SERVER['HTTP_USER_AGENT'])) { 
  22.             curl_setopt($ch, CURLOPT_USERAGENT, $_SERVER['HTTP_USER_AGENT']); 
  23.         } 
  24.     } 
  25.     if (!emptyempty($header)) { 
  26.         curl_setopt($ch, CURLOPT_HTTPHEADER, $header); 
  27.     } 
  28.     switch ($method) { 
  29.     case 'POST'
  30.         curl_setopt($ch, CURLOPT_POST, 1); 
  31.         curl_setopt($ch, CURLOPT_POSTFIELDS, $data); 
  32.         break;  //开源软件:phpfensi.com 
  33.     case 'GET'
  34.         break
  35.     case 'PUT'
  36.         curl_setopt($ch, CURLOPT_PUT, 1); 
  37.         curl_setopt($ch, CURLOPT_INFILE, ''); 
  38.         curl_setopt($ch, CURLOPT_INFILESIZE, 10); 
  39.         break
  40.     case 'DELETE'
  41.         curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "DELETE"); 
  42.         break
  43.     default
  44.         break
  45.     } 
  46.     curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 
  47.     curl_setopt($ch, CURLOPT_HEADER, $head); 
  48.     curl_setopt($ch, CURLOPT_NOBODY, $body); 
  49.     curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, $timeout); 
  50.     $rtn = curl_exec($ch); //获得返回 
  51.     if (curl_errno($ch)) { 
  52.         echo 'Errno'.curl_error($ch);//捕抓异常 
  53.     } 
  54.     curl_close($ch); 
  55.     return $rtn
  56. ?>

Tags: curl函数 模拟curl请求

分享到: