好得很程序员自学网

<tfoot draggable='sEl'></tfoot>

php curl封装类使用例子

下面整理两个php curl封装类使用例子,这两个函数可以让我们非常的方便的使用php curl相关函数,下面我们一起来看看吧.

使用函数之前我们要需要把php curl模块打开(libeay32.dll,ssleay32.dll,php5ts.dll,php_curl.dll)

开启php curl函数库的步骤:

1).去掉windows/php.ini 文件里;extension=php_curl.dll前面的; /*用 echo phpinfo();查看php.ini的路径*/

2).把php5/libeay32.dll,ssleay32.dll复制到系统目录windows/下

3).重启apache

php curl,代码如下:

<?php  include_once ( 'curl.class.php' );  $aa  = new  Curl( '' );    $curlOptions  =  array (   CURLOPT_URL =>  "http://ww.ww.ww/addTicket.jsp" , //访问URL   CURLOPT_RETURNTRANSFER => true,  //获取结果作为字符串返回    CURLOPT_REFERER =>  "ww.ww.ww/zw2" ,   CURLOPT_HTTPHEADER =>  array ( 'X-FORWARDED-FOR:139.197.14.19' ,  'CLIENT-IP:127.0.0.1' , 'Proxy-Client-IP:139.197.14.19' , 'WL-Proxy-Client-IP:139.197.14.19'  ),   CURLOPT_HEADER => 1,  //获取返回头信息     //CURLOPT_SSL_VERIFYPEER => false, //支持SSL加密    CURLOPT_POST => true,  //发送时带有POST参数    CURLOPT_POSTFIELDS =>  'ids=897&Submit=%E6%8A%95%E7%A5%A8' ,  //请求的POST参数字符串    CURLOPT_TIMEOUT =>  $aa ->timeout  //等待响应的时间    );    echo   $aa ->getResponseText( $curlOptions );  ?> 

cul处理类,代码如下:

<?php  class  Curl  {  public   $cookieFile ;  public   $timeout  = 160;  Public  function  __construct( $dir ){  $this ->cookieFile =  $this ->getTemporaryCookieFileName( $dir );  }  /**   * 设置CURL参数并发送请求,获取响应内容   * @access private   * @param $curlOptions array curl设置参数数组   * @return string|false 访问成功,按字符串形式返回获取的信息;否则返回false   */   public   function  getResponseText( $curlOptions ) {  /* 设置CURLOPT_RETURNTRANSFER为true */   if (!isset( $curlOptions [CURLOPT_RETURNTRANSFER]) ||  $curlOptions [CURLOPT_RETURNTRANSFER] == false) {  $curlOptions [CURLOPT_RETURNTRANSFER] = true;  }  /* 初始化curl模块 */   $curl  = curl_init();  /* 设置curl选项 */   curl_setopt_array( $curl ,  $curlOptions );  /* 发送请求并获取响应信息 */   $responseText  =  '' ;  try {  $responseText  = curl_exec( $curl );  if (( $errno  = curl_errno( $curl )) != CURLM_OK) {  $errmsg  = curl_error( $curl );  throw   new  Exception( $errmsg ,  $errno );  }  } catch (Exception  $e ) {  //exceptionDisposeFunction($e);   //print_r($e);   $responseText  = false;  }  /* 关闭curl模块 */   curl_close( $curl );  /* 返回结果 */   return   $responseText ;  }  /**   * 将Unicode字符串(u0000)转化为utf-8字符串,工具函数   * @access private   * @static   * @param $string string Unicode字符串   * @return string utf-8字符串   */   public   function  unicodeToUtf8( $string ) {  $string  =  str_replace ( 'u' ,  '' ,  strtolower ( $string ));  $length  =  strlen ( $string ) / 4;  $stringResult  =  '' ;  for ( $i  = 0;  $i  <  $length ;  $i ++) {  $charUnicodeHex  =  substr ( $string ,  $i  * 4, 4);  $unicodeCode  = hexdec( $charUnicodeHex );  $utf8Code  =  '' ;  if ( $unicodeCode  < 128) {  $utf8Code  =  chr ( $unicodeCode );  }  else   if ( $unicodeCode  < 2048) {  $utf8Code  .=  chr (192 + (( $unicodeCode  - ( $unicodeCode  % 64)) / 64));  $utf8Code  .=  chr (128 + ( $unicodeCode  % 64));  }  else  {  $utf8Code  .=  chr (224 + (( $unicodeCode  - ( $unicodeCode  % 4096)) / 4096));  $utf8Code  .=  chr (128 + ((( $unicodeCode  % 4096) - ( $unicodeCode  % 64)) / 64));  $utf8Code  .=  chr (128 + ( $unicodeCode  % 64));  }  $stringResult  .=  $utf8Code ;  }  return   $stringResult ;  }  private   function  getTemporaryCookieFileName( $dir = '.' ) {  return  ( str_replace ( "" ,  '/' , tempnam( $dir ,  'tmp' )));  }  }  ?> 

例子2,代码如下:

<?php  //curl类   class  Curl  {       function  Curl(){           return  true;      }              function  execute( $method ,  $url ,  $fields = '' ,  $userAgent = '' ,  $httpHeaders = '' ,  $username = '' ,  $password = '' ){           $ch  = Curl::create();           if (false ===  $ch ){               return  false;          }           if ( is_string ( $url ) &&  strlen ( $url )){               $ret  = curl_setopt( $ch , CURLOPT_URL,  $url );          } else {               return  false;          }           //是否显示头部信息           curl_setopt( $ch , CURLOPT_HEADER, false);           //           curl_setopt( $ch , CURLOPT_RETURNTRANSFER, true);           if ( $username  !=  '' ){              curl_setopt( $ch , CURLOPT_USERPWD,  $username  .  ':'  .  $password );          }           $method  =  strtolower ( $method );           if ( 'post'  ==  $method ){              curl_setopt( $ch , CURLOPT_POST, true);               if ( is_array ( $fields )){                   $sets  =  array ();                   foreach  ( $fields  AS  $key  =>  $val ){                       $sets [] =  $key  .  '='  . urlencode( $val );                  }                   $fields  = implode( '&' , $sets );              }              curl_setopt( $ch , CURLOPT_POSTFIELDS,  $fields );          } else   if ( 'put'  ==  $method ){              curl_setopt( $ch , CURLOPT_PUT, true);          }           //curl_setopt($ch, CURLOPT_PROGRESS, true);            //curl_setopt($ch, CURLOPT_VERBOSE, true);            //curl_setopt($ch, CURLOPT_MUTE, false);           curl_setopt( $ch , CURLOPT_TIMEOUT, 10); //设置curl超时秒数            if ( strlen ( $userAgent )){              curl_setopt( $ch , CURLOPT_USERAGENT,  $userAgent );          }           if ( is_array ( $httpHeaders )){              curl_setopt( $ch , CURLOPT_HTTPHEADER,  $httpHeaders );          }           $ret  = curl_exec( $ch );           if (curl_errno( $ch )){              curl_close( $ch );               return   array (curl_error( $ch ), curl_errno( $ch ));          } else {              curl_close( $ch );               if (! is_string ( $ret ) || ! strlen ( $ret )){                   return  false;              }               return   $ret ;          }      }              function  post( $url ,  $fields ,  $userAgent  =  '' ,  $httpHeaders  =  '' ,  $username  =  '' ,  $password  =  '' ){           $ret  = Curl::execute( 'POST' ,  $url ,  $fields ,  $userAgent ,  $httpHeaders ,  $username ,  $password );           if (false ===  $ret ){               return  false;          }           if ( is_array ( $ret )){               return  false;          }           return   $ret ;      }              function  get( $url ,  $userAgent  =  '' ,  $httpHeaders  =  '' ,  $username  =  '' ,  $password  =  '' ){           $ret  = Curl::execute( 'GET' ,  $url ,  '' ,  $userAgent ,  $httpHeaders ,  $username ,  $password );           if (false ===  $ret ){               return  false;          }           if ( is_array ( $ret )){               return  false;          }           return   $ret ;      }              function  create(){           $ch  = null;           if (!function_exists( 'curl_init' )){               return  false;          }           $ch  = curl_init();           if (! is_resource ( $ch )){               return  false;          }           return   $ch ;      }  }  ?> 

用法,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 curl封装类使用例子的详细内容...

  阅读:48次