He元素

Don't be shy just try!

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::

curl各个参数

 $opts = array(
            //基础参数
            CURLOPT_TIMEOUT        => 30,//设置请求超时时间
            CURLOPT_RETURNTRANSFER => 1,//获取的信息以文件流的形式返回,而不是直接输出
            CURLOPT_SSL_VERIFYPEER => false,//禁用后cURL将终止从服务端进行验证
            CURLOPT_SSL_VERIFYHOST => false,//检查服务器SSL证书中是否存在一个公用名
            CURLOPT_URL => 'http://127.0.0.1/test/index.php',//请求地址
            
            //POST请求
            CURLOPT_POST => 1,//发起POST方式请求
            CURLOPT_POSTFIELDS => array(
                'user'=>'jeff',
                'file'=>'@D:/image/my_test.jpg',//传输文件
            ),//POST发送的数据
           
            
            //获取头信息
            CURLOPT_HEADER => 1,//获取头信息(与POST方式不能同时使用)
            CURLOPT_NOBODY => 1,//不获取主体内容
            
            //伪造头信息
            CURLOPT_HTTPHEADER=> $header,//设置头信息,数组方式
            CURLOPT_REFERER => 'https://www.baidu.com',//伪造来源地址
            
            //获取cookie
            CURLOPT_COOKIEJAR => $cookie_file,//为cookie数据
            
            //使用cookie
            CURLOPT_COOKIEFILE => $cookie_file,//使用cookie数据
            
            //跟随跳转
            CURLOPT_FOLLOWLOCATION => true,//面的跳转会继续跟踪访问,而且cookie在header里面被保留了下来
            //使用CURLOPT_MAXREDIRS可以限定递归返回的数量
            
            //代理访问
            CURLOPT_PROXY => '39.77.68.212',//代理服务器IP
            CURLOPT_PROXYPORT => '8080',//代理服务器端口
            //CURLOPT_PROXYUSERPWD 指定需要验证的代理的账号密码,"[username]:[password]"格式的字符串
            
            //综合
            curl_setopt($ch, CURLOPT_ENCODING, "gzip"); //指定gzip压缩,若返回数据为乱码可尝试
            
        );

初始并运行

        $ch = curl_init();
        curl_setopt_array($ch, $opts);
        $data  = curl_exec($ch);
        $info = curl_getinfo($ch);//获取传输状态信息数组
        $error = curl_error($ch);//获取错误信息
        curl_close($ch);
        if($error) throw new Exception('CURL请求错误:' . $error);    

curl_getinfo($ch)获取的数组信息

"url" //资源网络地址 
"content_type" //内容编码 
"http_code" //HTTP状态码 
"header_size" //header的大小 
"request_size" //请求的大小 
"filetime" //文件创建时间 
"ssl_verify_result" //SSL验证结果 
"redirect_count" //跳转技术 
"total_time" //总耗时 
"namelookup_time" //DNS查询耗时 
"connect_time" //等待连接耗时 
"pretransfer_time" //传输前准备耗时 
"size_upload" //上传数据的大小 
"size_download" //下载数据的大小 
"speed_download" //下载速度 
"speed_upload" //上传速度 
"download_content_length"//下载内容的长度 
"upload_content_length" //上传内容的长度 
"starttransfer_time" //开始传输的时间 
"redirect_time"//重定向耗时

CURLOPT_CONNECTTIMEOUT  

CURLOPT_TIMEOUT

使用cURL下载MP3文件是一个对开发人员来说不错的例子。CURLOPT_CONNECTTIMEOUT 
可以设置为10秒,标识如果服务器10秒内没有响应,脚本就会断开连接;CURLOPT_TIMEOUT可以设置为100,如果MP3文件100秒内没有下载完成,脚本将会断开连接。

posted on 2016-05-24 17:13  He元素  阅读(626)  评论(0编辑  收藏  举报