<?php
class DoCurl{
//header 必须是 key : value的形式
private $header1= array(
'User-Agent:Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/44.0.2403.89 Safari/537.36'
);
/*
CURL请求,需传入相关参数
@param $url 请求地址
@param $header 请求头(可选)
@param $isHttps 是https请求?(true or false)
@param $cookie cookie
*/
private function get_curl_result($url,$header,$isHttps,$cookie,$postData)
{
$curl = curl_init(); // 启动一个CURL会话
curl_setopt($curl, CURLOPT_URL, $url); // 要访问的地址
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
if(isset($header)){
curl_setopt($curl, CURLOPT_HTTPHEADER,$header);
}
if($isHttps){
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER,false); // 对认证证书来源的检查
curl_setopt($curl, CURLOPT_SSL_VERIFYHOST,true); // 从证书中检查SSL加密算法是否存在
}
//curl_setopt($curl, CURLOPT_RETURNTRANSFER, true); // 获取的信息以文件流的形式返回
if(isset($cookie)){
curl_setopt($curl, CURLOPT_COOKIE, $cookie);
}
if(isset($postData)){
curl_setopt($curl, CURLOPT_POST, 1); // 发送一个常规的Post请求
curl_setopt($curl, CURLOPT_POSTFIELDS, $postData); // Post提交的数据包
}
//curl_setopt($curl, CURLOPT_USERAGENT, $_SERVER['HTTP_USER_AGENT']); // 模拟用户使用的浏览器
//curl_setopt($curl, CURLOPT_FOLLOWLOCATION, 1); // 使用自动跳转
//curl_setopt($curl, CURLOPT_AUTOREFERER, 1); // 自动设置Referer
//curl_setopt($curl, CURLOPT_COOKIEFILE, $GLOBALS['cookie_file']); // 读取上面所储存的Cookie信息
curl_setopt($curl, CURLOPT_TIMEOUT, 10); // 设置超时限制防止死循环
curl_setopt($curl, CURLOPT_ENCODING, 'gzip');//启用GZIP压缩
//curl_setopt($curl, CURLOPT_HEADER, true); // 显示返回的Header区域内容
//curl_setopt($curl, CURLOPT_COOKIEJAR, $cookie_jar); //保存cookie
$tmpInfo = curl_exec($curl); // 执行操作
//$info = curl_getinfo($curl);
curl_close($curl); // 关闭CURL会话
return $tmpInfo;
}
/*
用于检测浏览器的header测试
*/
public function do_test(){
//检测浏览器的header
$url = "http://httpbin.org/headers";
$result = $this->get_curl_result($url,$this->header1,false,null,null);
echo $result;
}
/*
根据URL访问,并返回结果,用于调用接口 Get方式
*/
public function do_curl_get($url){
if(isset($url)){
return $this->get_curl_result($url,$this->header1,false,null,null);
}
}
/*
根据URL访问,并返回结果,用于调用接口 POST方式
"Content-Type": "application/x-www-form-urlencoded"方式
*/
public function do_curl_post($url,$postData){
if(isset($url) && isset($postData)){
return $this->get_curl_result($url,$this->header1,false,null,http_build_query($postData));
}
}
}
?>
最后编辑时间为: October 25th , 2016 at 10:02 am
本文由
wjy 创作,采用
知识共享署名 4.0 国际许可协议进行许可
可自由转载、引用,但需署名作者且注明文章出处