九月丶

PHP中使用CURL实现GET和POST请求
GET方式实现/** * @param $url 请求地址 * @return array */ functio...
扫描右侧二维码阅读全文
27
2018/01

PHP中使用CURL实现GET和POST请求

GET方式实现

/**
* @param $url 请求地址
* @return array
 */
function curl_get($url) {
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
    curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    $output = curl_exec($ch);
    curl_close($ch);
    return json_decode($output, true);
}

POST方式实现

/**
* @param $url 请求地址
* @param $param 请求参数
* @param $header 请求头,例如array('Content-Type: application/json')
* @return array
 */
function curl_post($url,$param,$header) {
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE); //不验证ssl证书
    curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE);//不验证host
    curl_setopt($ch, CURLOPT_POST, true);
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_POSTFIELDS, $param);
    curl_setopt($ch, CURLOPT_HTTPHEADER, $header);
    curl_setopt($ch, CURLOPT_NOBODY, FALSE);//表示需要response body
    curl_setopt($ch, CURLOPT_HEADER, TRUE);//表示需要response header
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);//将curl_exec()获取的信息以文件流的形式返回,而不是直接输出

    $content = curl_exec($ch);
    $tmp_arr = explode("\r\n\r\n", str_replace("\r\n\r\n\r\n\r\n", "\r\n\r\n", $content));
    count($tmp_arr) == 3 ?  array_shift($tmp_arr) : '';
    list($header, $body) = $content !== false ? $tmp_arr : ['',''];

    $return_code = curl_getinfo($ch,CURLINFO_HTTP_CODE);
    $return_code = curl_getinfo($ch);
    $curl_code = curl_errno($ch);
    $msg = curl_error($ch);
    curl_close($ch);
    return array('http_code' => $return_code, 'data' =>$body, 'curl_msg' => $msg, 'curl_code' => $curl_code);
}
最后修改:2019 年 05 月 14 日 11 : 31 AM
如果觉得我的文章对你有用,请随意赞赏

发表评论