PHP中发送curl请求,常用设置使用集合

$url = "http://dingdingmaoer.com";//要访问的url
    $curlObj = curl_init();//初始化
    curl_setopt($curlObj,CURLOPT_URL,$url);//设置要访问的URL
    curl_setopt($curlObj,CURLOPT_HEADER,false);//设置 是否保留头信息
    curl_setopt($curlObj,CURLOPT_RETURNTRANSFER,true);//设置 是否直接输出,(若获得的数据不需要再做处理设置为false/0)

    //--------------------------以下是post请求 相关设置
    $data = '';// post参数 多个参数以&符号进行拼接
    curl_setopt($curlObj,CURLOPT_POST,true);//设置为post请求
    curl_setopt($curlObj,CURLOPT_POSTFIELDS,$data);//设置post参数
    curl_setopt($curlObj,CURLOPT_HTTPHEADER,[
        "application/x-www-form-urlencoded; charset=utf-8",
        "Content-length:".strlen($data)
    ]);// 设置post请求头
    //--------------------------以下是cookie 相关设置
    date_default_timezone_get('PRC');// 使用cookie时,必须先设置时区
    curl_setopt($curlObj,CURLOPT_COOKIESESSION,true);
    curl_setopt($curlObj,CURLOPT_COOKIEFILE,'cookiefile');//cookie保存文件名
    curl_setopt($curlObj,CURLOPT_COOKIEJAR,'cookiefile');//cookie获取文件名
    curl_setopt($curlObj,CURLOPT_COOKIE,session_name().'='.session_id());
    curl_setopt($curlObj,CURLOPT_FOLLOWLOCATION,1);//让curl支持页面链接跳转
    //--------------------------其他设置
    curl_setopt($curlObj,CURLOPT_TIMEOUT,300);//设置超时时间,即超过5秒就不连接了
    curl_setopt($curlObj,CURLOPT_USERPWD,"admin:admin"); //设置ftp登录帐号密码
    $fp=fopen("download.php","r");// 保存到本地文件名
    curl_setopt($curlObj,CURLOPT_INFILE,$fp); //设置写入文件
    curl_setopt($curlObj,CURLOPT_INFILESIZE,filesize("download.php"));//设定上传文件的大小限制,字节(字节)为单位。
    curl_setopt($curlObj,CURLOPT_UPLOAD,true);//设置为上传操作
    curl_setopt($curlObj,CURLOPT_SSL_VERIFYPEER,false);// 关闭SSL验证
    curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, FALSE);// 跳过host验证
    $result = curl_exec($curlObj);// 发送执行 并返回数据

    // curl 错误处理
    if(curl_errno($curlObj)) return "Curl error:" . curl_error($curlObj);
    curl_close($curlObj);// 关闭cURL
    return $result;

封装php之curl实现http与https请求的方法

/**
 * @method curl GET/POST  默认GET请求
 * @param $url 访问url
 * @param null $data 非空为post请求
 * @return mixed|string
 */
public function http_request($url, $data = null)
{
    //初始化
    $curl = curl_init();
    //设置url
    curl_setopt($curl, CURLOPT_URL, $url);
    //设置头文件的信息作为数据流输出
    curl_setopt($curl, CURLOPT_HEADER, false);
    //设置获取的信息以文件流的形式返回,而不是直接输出。
    curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
    //设置https请求 规避ssl的证书检查
    curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, FALSE);
    //设置跳过host验证
    curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, FALSE);
    if (!empty($data)) {
        //设置post方式提交
        curl_setopt($curl, CURLOPT_POST, 1);
        //设置post数据
        curl_setopt($curl, CURLOPT_POSTFIELDS, $data);
        // 设置post请求头
        /*
        curl_setopt($curl,CURLOPT_HTTPHEADER,[
            "Content-Type: application/json; charset=utf-8",
            "Content-length:".strlen($data),
            "api-key:key"
        ]);
        */
    }
    //执行命令
    $output = curl_exec($curl);
    //抓取错误信息
    if (curl_errno($curl)) return "Curl error:" . curl_error($curl);
    //关闭URL请求
    curl_close($curl);
    //显示获得的数据
    return $output;
}
Last modification:April 11th, 2019 at 10:35 am
如果觉得我的文章对你有用,请随意赞赏

Leave a Comment