/**
* 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;
}