PHP 封装CURL

 /**
     * @param string $url             链接
     * @param null $data              传入数据
     * @param string $type            类型
     * @param string $method          请求方法
     * @param string[] $header        header头
     * @param bool $https             是否验证证书
     * @param int $timeout            超时时间
     * @return bool|string
     */
    function curl_request($url = ‘http://www.4399.com/‘, $data=null, $type = ‘json‘, $method=‘get‘, $header = array("content-type: application/json;charset=‘utf-8‘"), $https=true, $timeout = 5){

        $ch = curl_init();//初始化
        curl_setopt($ch, CURLOPT_URL, $url);//访问的URL
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);//只获取页面内容,但不输出
        if($https){
            curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);//https请求 不验证证书
            curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);//https请求 不验证HOST
        }

        //默认是GET请求
        switch (strtoupper($method)){
            case ‘GET‘:
                curl_setopt($ch, CURLOPT_POST, 0);//请求方式为get请求
               break;
            case ‘POST‘:
                curl_setopt($ch, CURLOPT_POST, true);//请求方式为post请求
                break;
            case ‘PUT‘:
            case "DELETE":
                curl_setopt($ch, CURLOPT_CUSTOMREQUEST, $method); //设置请求方式
                break;
        }
        if ($data){
            switch ($type){
                case ‘json‘:
                    curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($data));//请求数据
                    break;
                default:
                    curl_setopt($ch, CURLOPT_POSTFIELDS, $data);//请求数据
            }
        }

        curl_setopt($ch, CURLOPT_TIMEOUT, $timeout);
        //curl_setopt($ch, CURLOPT_HEADER, false);//设置不需要头信息
        curl_setopt($ch, CURLOPT_HTTPHEADER, $header); //模拟的header头
        $result = curl_exec($ch);//执行请求
        curl_close($ch);//关闭curl,释放资源


        return $result;
    }

 

PHP 封装CURL

上一篇:Kubernetes资源管理


下一篇:js引用类型深拷贝、浅拷贝方法封装