/**
* get
* post方式请求资源
* @param string $url 基于的baseUrl
* @param int $flag 标志位
* @param array $header 头部
* @return string 返回的资源内容
*/
function curl_get($url, $flag = 0, $header = [])
{
$ch = curl_init();
if (!$flag) curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
curl_setopt($ch, CURLOPT_URL, $url);
if ($header) curl_setopt($ch, CURLOPT_HTTPHEADER, $header);
$ret = curl_exec($ch);
curl_close($ch);
return $ret;
}
/**
* post
* post方式请求资源
* @param string $url 基于的baseUrl
* @param array $keysArr 请求的参数列表
* @return string 返回的资源内容
*/
function curl_post($url, $keysArr)
{
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE);
curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (compatible; MSIE 5.01; Windows NT 5.0)');
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($ch, CURLOPT_AUTOREFERER, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, is_string($keysArr) ? $keysArr : http_build_query($keysArr));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$ret = curl_exec($ch);
curl_close($ch);
return $ret;
}
/**
* curl ajax版
* @param string $url url
* @param string $host header里面的host
* @param bool $post 是否采用post方式
* @param array $data 请求数据
* @param array $header_add 追加的header
* @return array
*/
function curl_ajax($url, $host, $post = true, $data = [], $header_add = [])
{
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
// 返回结果 不直接输出
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
// 追踪内部跳转
curl_setopt($ch, CURLOPT_MAXREDIRS, 100);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
// 设置请求头信息
$header = [
'Accept:text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',
'Accept-Encoding:gzip, deflate',
'Accept-Language:zh-CN,zh;q=0.8,en-US;q=0.5,en;q=0.3',
'Host:' . $host, //必填
'X-Requested-With:XMLHttpRequest', // 设置ajax请求头
];
if ($header_add) {
$header = array_merge($header_add, $header);
}
curl_setopt($ch, CURLOPT_HTTPHEADER, $header);
// 设置响应信息的编码
curl_setopt($ch, CURLOPT_ACCEPT_ENCODING, 'gzip, deflate');
if ($post) {
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
}
curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (compatible; MSIE 5.01; Windows NT 5.0)');
$ret = curl_exec($ch);
curl_close($ch);
return $ret;
}