/*** curl方式访问url* @param Str $url 访问url* @param Str $method 访问方式* @param array $params 访问时传递的数据* @param boolean $json_ 是否返回json数组* @param array $headers 访问时需要传递的header参数* @return mixed*/
protected function requestUrl($url, $method = 'GET', $params = array(), $json_=true,$headers = array())
{/**初始化一个数组设置curl*/$opts = array(CURLOPT_TIMEOUT => 30,CURLOPT_RETURNTRANSFER => 1,CURLOPT_SSL_VERIFYPEER => false,CURLOPT_SSL_VERIFYHOST => false,CURLOPT_HTTPHEADER => $headers);/**建立对应的http请求(get or post)*/switch (strtoupper($method)){/**post请求*/case 'POST':/**设置你需要抓取的URL*/$opts[CURLOPT_URL] = $url;$opts[CURLOPT_POST] = 1;$opts[CURLOPT_POSTFIELDS] = json_encode($params);break;/**get请求*/case 'GET':$URL_ = $url.'?'.http_build_query($params);$opts[CURLOPT_URL] = $URL_;break;default:return false;}/**初始化一个 cURL 对象*/$curl = curl_init();/**运行CURL*/$res = curl_setopt_array($curl, $opts);$data = curl_exec($curl);$error = curl_error($curl);/**关闭URL请求*/curl_close($curl);/**请求出错*/if($error) return false;/**转换json数组返回*/if ($json_) $data = json_decode($data, true);return $data;
}