php实现的Curl封装类Curl.class.php用法实例分析
本文实例讲述了php实现的Curl封装类Curl.class.php用法。分享给大家供大家参考。具体如下:
<?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('http://www.XXX.com/');
POST用法:
$curl=newCurl();
$curl->get('http://www.XXX.com/','p=1&time=0');
希望本文所述对大家的php程序设计有所帮助。