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程序设计有所帮助。