PHP CURL简单使用(支持ssl连接和proxy代理连接,简单的GET/POST常规操作,文件上传)。
s
/**
*
* $Id:Curl.class.php
*
* CURL HTTP工具类
*
* 支持以下功能:
* 1:支持ssl连接和proxy代理连接
* 2: 对cookie的自动支持
* 3: 简单的GET/POST常规操作
* 4: 支持单个文件上传或同字段的多文件上传,支持相对路径或绝对路径.
* 5: 支持返回发送请求前和请求后所有的服务器信息和服务器Header信息
* 6: 自动支持lighttpd服务器
* 7: 支持自动设置 REFERER 引用页
* 8: 自动支持服务器301跳转或重写问题
* 9: 其它可选项,如自定义端口,超时时间,USERAGENT,Gzip压缩等.
*
*/
class Curl{
private $ch = null; //CURL句柄
private $info = array(); //CURL执行前后所设置或服务器端返回的信息
//CURL SETOPT 信息
private $setopt = array(
'port'=>80, //访问的端口,http默认是 80
'userAgent'=>'', //客户端 USERAGENT,如:"Mozilla/4.0",为空则使用用户的浏览器
'timeOut'=>30, //连接超时时间
'useCookie'=>true, //是否使用 COOKIE 建议打开,因为一般网站都会用到
'ssl'=>false, //是否支持SSL
'gzip'=>true, //客户端是否支持 gzip压缩
'proxy'=>false, //是否使用代理
'proxyType'=>'HTTP', //代理类型,可选择 HTTP 或 SOCKS5
'proxyHost'=>'123.110.89.248', //代理的主机地址
'proxyPort'=>8909, //代理主机的端口
'proxyAuth'=>false, //代理是否要身份认证(HTTP方式时)
'proxyAuthType'=>'BASIC', //认证的方式.可选择 BASIC 或 NTLM 方式
'proxyAuthUser'=>'user', //认证的用户名
'proxyAuthPwd'=>'password', //认证的密码
);
/**
* 构造函数
*
* @param array $setopt :请参考 private $setopt 来设置
*/
public function Curl($setopt=array()){
$this->setopt = array_merge($this->setopt,$setopt); //合并用户的设置和系统的默认设置
function_exists('curl_init') || die('CURL Library Not Loaded'); //如果没有安装CURL则终止程序
$this->ch = curl_init(); //初始化
curl_setopt($this->ch, CURLOPT_PORT, $this->setopt['port']); //设置CURL连接的端口
//使用代理
if($this->