zoukankan      html  css  js  c++  java
  • curl_get和curl_post,伪造请求头,绕过防盗链下载文件

    //curl-get
        function curl_get($url, $timeout = 10)
        {
            $ch = curl_init();//初始化
            curl_setopt($ch, CURLOPT_URL, $url);//抓取指定网页
            curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE); //禁止服务器端的验证
            //伪装请求来源,绕过防盗
            curl_setopt($ch,CURLOPT_REFERER,"http://www.ding.com");
            curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);//要求结果为字符串且输出到屏幕上
            curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, $timeout);//服务器5秒内没有响应,脚本就会断开连接
            $file_contents = curl_exec($ch);//运行curl
            if (curl_errno($ch)) {
                return curl_error($ch);
            }
            curl_close($ch);
            return $file_contents;
        }
        //http://oss.houdunren.com/lesson_video/水印类/1,水印类简介.mp4
        $url = '要下载文件的地址';
        $filename = '要保存的下载文件名称';
        header("Content-Disposition:attachment;filename=".$filename);
        echo curl_get($url);
    
    function curl_post($url, array $params = array(), $timeout = 5)
    {
        $ch = curl_init();//初始化
        curl_setopt($ch, CURLOPT_URL, $url);//抓取指定网页
        curl_setopt($ch, CURLOPT_HEADER, 0);//设置header
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);//要求结果为字符串且输出到屏幕上
        curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, $timeout);
        curl_setopt($ch, CURLOPT_POST, 1);//post提交方式
        curl_setopt($ch, CURLOPT_POSTFIELDS, $params);
        $data = curl_exec($ch);//运行curl
        curl_close($ch);
        return ($data);
    }
    

  • 相关阅读:
    apache
    zabbix 问题
    node起步
    记录一次利用cropperjs修建图片并上传的过程
    vue走过的那些坑
    关于vue传参问题
    mybatis的走过的坑
    通常如何对网站的文件和资源进行优化?
    一个页面从输入URL到页面加载显示完成,这个过程都发生什么?
    JQuery---过滤器
  • 原文地址:https://www.cnblogs.com/idjl/p/9610557.html
Copyright © 2011-2022 走看看