/**
* curl请求
* @param string $url 地址,get请求请补充在url
* @param string $post_data post的数据,get请求则留空
* @param bool $verify 是否ssl验证
* @param string $cainfo CA根证书
* @param array $header header数组
* @param string $user_agent user_agent值
* @return mixed curl结果
*/
function curlRequest($url, $post_data = '', $verify = false, $cainfo = '', $header=[], $user_agent='', $timeout=1000)
{
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, $url);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
// 超过1024字节解决方法
curl_setopt($curl, CURLOPT_HTTPHEADER, array('Expect:'));
curl_setopt($curl, CURLOPT_TIMEOUT,$timeout);//置cURL允许执行的最长秒数
if(!empty($header)) {
//传json需要设置:array("Content-type: application/json")
curl_setopt($curl, CURLOPT_HTTPHEADER, $header);
}
if(!empty($user_agent)) {
curl_setopt($curl, CURLOPT_USERAGENT, $user_agent);
}
//是否post
if (!empty($post_data)) {
if(is_array($post_data)) {
$post_data = http_build_query($post_data);//最好用http_build_query,而不是直接提交数组
}
curl_setopt($curl, CURLOPT_POST, 1);
curl_setopt($curl, CURLOPT_POSTFIELDS, $post_data);
}
//ssl验证
if ($verify) {
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, TRUE);
curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, TRUE);
curl_setopt($curl, CURLOPT_CAINFO, $cainfo);//CA根证书(用来验证的网站证书是否是CA颁布)
} else {
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, FALSE);
}
$res = curl_exec($curl);//判断是否恒等于false
return $res;
}