下面整理两个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′);
声明:本文来自网络,不代表【好得很程序员自学网】立场,转载请注明出处:http://www.haodehen.cn/did29714