2019独角兽企业重金招聘Python工程师标准>>>
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',//伪造来源地址//获取cookieCURLOPT_COOKIEJAR => $cookie_file,//为cookie数据//使用cookieCURLOPT_COOKIEFILE => $cookie_file,//使用cookie数据//跟随跳转CURLOPT_FOLLOWLOCATION => true,//面的跳转会继续跟踪访问,而且cookie在header里面被保留了下来//使用CURLOPT_MAXREDIRS可以限定递归返回的数量//代理访问CURLOPT_PROXY => '39.77.68.212',//代理服务器IPCURLOPT_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"//重定向耗时