当前位置: 代码迷 >> 综合 >> php CURL 请求
  详细解决方案

php CURL 请求

热度:58   发布时间:2023-12-05 08:25:33.0
/*** 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;
}