php CURL 請求

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

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章