php封装curl请求,包含几乎所有的常用参数


function curl (string $url, array $header = [], string $method = 'get', array $params = [], int $timeout = 0, bool $isJson = false, string $refer = '', array $userAgent = [], string $cookie = '') {
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
    curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
    // 设置请求头
    if (!empty($header)) {
        curl_setopt($ch, CURLOPT_HTTPHEADER, $header);
    }
    // 设置超时时间
    curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, $timeout);
    // 设置cookie
    if (!empty($cookie)) {
        curl_setopt($ch, CURLOPT_COOKIE, $cookie);
    }
    // 设置refer
    if (!empty($refer)) {
        curl_setopt($ch, CURLOPT_REFERER, $refer);
    }
    // 设置代理
    if (!empty($userAgent)) {
        curl_setopt($ch, CURLOPT_USERAGENT,$userAgent);
    }
    switch ($method) {
        case 'get':
            $url = strpos($url, '?') ? $url . http_build_query($params) : $url . '?' .  http_build_query($params);
            break;
        case 'post':
            if ($isJson) {
                $params = json_encode($params);
            }
            curl_setopt($ch, CURLOPT_POSTFIELDS, $params);
            break;
        case 'put':
            curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "PUT");
            curl_setopt($ch, CURLOPT_POSTFIELDS, $params);
            break;
        case 'delete':
            curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "DELETE");
            break;
    }
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_ENCODING, "gzip");
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    $response = curl_exec($ch);
    curl_close($ch);
    return $response;
}
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值