当前位置:首页 > PHP教程 > php类库 > 列表

php实现的Curl封装类Curl.class.php用法实例分析

发布:smiling 来源: PHP粉丝网  添加日期:2021-06-19 19:39:32 浏览: 评论:0 

这篇文章主要介绍了php实现的Curl封装类Curl.class.php用法,以完整实例形式较为详细的分析了Curl封装类的定义及相关使用技巧,具有一定参考借鉴价值,需要的朋友可以参考下。

本文实例讲述了php实现的Curl封装类Curl.class.php用法,分享给大家供大家参考,具体如下:

  1. <?php 
  2. //curl类 
  3. class Curl 
  4.  function Curl(){ 
  5.   return true; 
  6.  } 
  7.  function execute($method$url$fields=''$userAgent=''$httpHeaders=''$username=''$password=''){ 
  8.   $ch = Curl::create(); 
  9.   if(false === $ch){ 
  10.    return false; 
  11.   } 
  12.   if(is_string($url) && strlen($url)){ 
  13.    $ret = curl_setopt($ch, CURLOPT_URL, $url); 
  14.   }else
  15.    return false; 
  16.   } 
  17.   //是否显示头部信息 
  18.   curl_setopt($ch, CURLOPT_HEADER, false); 
  19.   // 
  20.   curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); 
  21.   if($username != ''){ 
  22.    curl_setopt($ch, CURLOPT_USERPWD, $username . ':' . $password); 
  23.   } 
  24.   $method = strtolower($method); 
  25.   if('post' == $method){ 
  26.    curl_setopt($ch, CURLOPT_POST, true); 
  27.    if(is_array($fields)){ 
  28.     $sets = array(); 
  29.     foreach ($fields AS $key => $val){ 
  30.      $sets[] = $key . '=' . urlencode($val); 
  31.     } 
  32.     $fields = implode('&',$sets); 
  33.    } 
  34.    curl_setopt($ch, CURLOPT_POSTFIELDS, $fields); 
  35.   }else if('put' == $method){ 
  36.    curl_setopt($ch, CURLOPT_PUT, true); 
  37.   } 
  38.   //curl_setopt($ch, CURLOPT_PROGRESS, true); 
  39.   //curl_setopt($ch, CURLOPT_VERBOSE, true); 
  40.   //curl_setopt($ch, CURLOPT_MUTE, false); 
  41.   curl_setopt($ch, CURLOPT_TIMEOUT, 10);//设置curl超时秒数 
  42.   if(strlen($userAgent)){ 
  43.    curl_setopt($ch, CURLOPT_USERAGENT, $userAgent); 
  44.   } 
  45.   if(is_array($httpHeaders)){ 
  46.    curl_setopt($ch, CURLOPT_HTTPHEADER, $httpHeaders); 
  47.   } 
  48.   $ret = curl_exec($ch); 
  49.   if(curl_errno($ch)){ 
  50.    curl_close($ch); 
  51.    return array(curl_error($ch), curl_errno($ch)); 
  52.   }else
  53.    curl_close($ch); 
  54.    if(!is_string($ret) || !strlen($ret)){ 
  55.     return false; 
  56.    } 
  57.    return $ret
  58.   } 
  59.  } 
  60.  function post($url$fields$userAgent = ''$httpHeaders = ''$username = ''$password = ''){ 
  61.   $ret = Curl::execute('POST'$url$fields$userAgent$httpHeaders$username$password); 
  62.   if(false === $ret){ 
  63.    return false; 
  64.   } 
  65.   if(is_array($ret)){ 
  66.    return false; 
  67.   } 
  68.   return $ret
  69.  } 
  70.  function get($url$userAgent = ''$httpHeaders = ''$username = ''$password = ''){ 
  71.   $ret = Curl::execute('GET'$url''$userAgent$httpHeaders$username$password); 
  72.   if(false === $ret){ 
  73.    return false; 
  74.   } 
  75.   if(is_array($ret)){ 
  76.    return false; 
  77.   } 
  78.   return $ret
  79.  } 
  80.  function create(){ 
  81.   $ch = null; 
  82.   if(!function_exists('curl_init')){ 
  83.    return false; 
  84.   } 
  85.   $ch = curl_init(); 
  86.   if(!is_resource($ch)){ 
  87.    return false; 
  88.   } 
  89.   return $ch
  90.  } 
  91. ?> 

GET用法:

$curl = new Curl();

$curl->get('http://www.phpfensi.com/');

POST用法:

$curl = new Curl();

$curl->get('http://www.phpfensi.com/', 'p=1&time=0');

希望本文所述对大家的php程序设计有所帮助。

Tags: Curl封装类 Curl class php

分享到: