php的curl封装类用法实例
本文实例讲述了两个phpcurl封装类的用法实例,这两个函数可以让我们非常的方便的使用phpcurl相关函数。分享给大家供大家参考。具体如下:
使用函数之前我们要需要把phpcurl模块打开(libeay32.dll,ssleay32.dll,php5ts.dll,php_curl.dll)
开启phpcurl函数库的步骤
1).去掉windows/php.ini文件里;extension=php_curl.dll前面的;/*用echophpinfo();查看php.ini的路径*/
2).把php5/libeay32.dll,ssleay32.dll复制到系统目录windows/下
3).重启apache
代码如下:
<?php include_once('curl.class.php'); $aa=newCurl(''); $curlOptions=array( CURLOPT_URL=>"http://www.xx.com/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 classCurl { public$cookieFile; public$timeout=160; Publicfunction__construct($dir){ $this->cookieFile=$this->getTemporaryCookieFileName($dir); } /** *设置CURL参数并发送请求,获取响应内容 *@accessprivate *@param$curlOptionsarraycurl设置参数数组 *@returnstring|false访问成功,按字符串形式返回获取的信息;否则返回false */ publicfunctiongetResponseText($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); thrownewException($errmsg,$errno); } }catch(Exception$e){ //exceptionDisposeFunction($e); //print_r($e); $responseText=false; } /*关闭curl模块*/ curl_close($curl); /*返回结果*/ return$responseText; } /** *将Unicode字符串(u0000)转化为utf-8字符串,工具函数 *@accessprivate *@static *@param$stringstringUnicode字符串 *@returnstringutf-8字符串 */ publicfunctionunicodeToUtf8($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); }elseif($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; } privatefunctiongetTemporaryCookieFileName($dir='.'){ return(str_replace("",'/',tempnam($dir,'tmp'))); } }
例子2
<?php //curl类 classCurl { functionCurl(){ returntrue; } functionexecute($method,$url,$fields='',$userAgent='',$httpHeaders='',$username='',$password=''){ $ch=Curl::create(); if(false===$ch){ returnfalse; } if(is_string($url)&&strlen($url)){ $ret=curl_setopt($ch,CURLOPT_URL,$url); }else{ returnfalse; } //是否显示头部信息 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($fieldsAS$key=>$val){ $sets[]=$key.'='.urlencode($val); } $fields=implode('&',$sets); } curl_setopt($ch,CURLOPT_POSTFIELDS,$fields); }elseif('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); returnarray(curl_error($ch),curl_errno($ch)); }else{ curl_close($ch); if(!is_string($ret)||!strlen($ret)){ returnfalse; } return$ret; } } functionpost($url,$fields,$userAgent='',$httpHeaders='',$username='',$password=''){ $ret=Curl::execute('POST',$url,$fields,$userAgent,$httpHeaders,$username,$password); if(false===$ret){ returnfalse; } if(is_array($ret)){ returnfalse; } return$ret; } functionget($url,$userAgent='',$httpHeaders='',$username='',$password=''){ $ret=Curl::execute('GET',$url,'',$userAgent,$httpHeaders,$username,$password); if(false===$ret){ returnfalse; } if(is_array($ret)){ returnfalse; } return$ret; } functioncreate(){ $ch=null; if(!function_exists('curl_init')){ returnfalse; } $ch=curl_init(); if(!is_resource($ch)){ returnfalse; } return$ch; } } ?>
用法
GET用法:
$curl=newCurl(); $curl->get('https://www.nhooo.com/');
POST用法:
$curl=newCurl(); $curl->get('https://www.nhooo.com/','p=1&time=0′);
希望本文所述对大家的PHP程序设计有所帮助。