新修改的 curl get,如果成功,返回的是一个数组,包含返回的http头信息和数据信息。如果失败返回false。
返回的数据结构可以去掉//var_dump($info);注释查看。
常用的如
$info['http_code'] //http状态码 $info['datas'] //返回的数据信息.
curl get
function curl_get($url,$referer = '') { $UGA="Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:53.0) Gecko/20100101 Firefox/53.0"; $ch = curl_init(); $headers = array(); $headers[] = "Accept: */*"; $headers[] = "Cache-Control: max-age=0"; $headers[] = "Connection: close"; //$headers[] = "Keep-Alive: 300"; $headers[] = "Cookie: caches="; $headers[] = "Accept-Charset: utf-8;ISO-8859-1;iso-8859-2;q=0.7,*;q=0.7"; $headers[] = "Accept-Language: en-us,en;q=0.5"; $headers[] = "Pragma: "; // browsers keep this blank. curl_setopt($ch, CURLOPT_USERAGENT, $UGA); curl_setopt($ch, CURLOPT_HTTPHEADER, $headers); curl_setopt($ch, CURLOPT_REFERER, $referer); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_TIMEOUT,40); curl_setopt($ch, CURLOPT_RETURNTRANSFER,1); $datas = curl_exec($ch); if(curl_errno($ch)) { echo "error:".curl_error($ch)."\n"; curl_close($ch); return false; } $info = curl_getinfo($ch); $info['datas'] = $datas; //var_dump($info); curl_close($ch); return $info; }
结构
array(27) { ["url"]=> string(116) "https://xxx.tumblr.com/video_file/xxxxxx" ["content_type"]=> string(24) "text/html; charset=UTF-8" ["http_code"]=> int(302) ["header_size"]=> int(786) ["request_size"]=> int(392) ["filetime"]=> int(-1) ["ssl_verify_result"]=> int(0) ["redirect_count"]=> int(0) ["total_time"]=> float(1.215243) ["namelookup_time"]=> float(0.028823) ["connect_time"]=> float(0.029488) ["pretransfer_time"]=> float(0.901378) ["size_upload"]=> float(0) ["size_download"]=> float(0) ["speed_download"]=> float(0) ["speed_upload"]=> float(0) ["download_content_length"]=> float(0) ["upload_content_length"]=> float(-1) ["starttransfer_time"]=> float(1.215218) ["redirect_time"]=> float(0) ["redirect_url"]=> string(55) "https://vtt.tumblr.com/tumblr_xxxxxx.mp4#_=_" ["primary_ip"]=> string(14) "199.101.133.63" ["certinfo"]=> array(0) { } ["primary_port"]=> int(443) ["local_ip"]=> string(13) "192.168.xx.xxx" ["local_port"]=> int(52772) ["datas"]=> string(0) "" }
curl POST
new:
function curl_post($url,$post_full,$referer = '') { $UGA="Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:53.0) Gecko/20100101 Firefox/53.0"; $ch = curl_init(); $headers = array(); $headers[] = "Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8"; $headers[] = "Accept-Language: q=0.8,en-US;q=0.5,en;q=0.3"; $headers[] = "Accept-Encoding: gzip, deflate, br"; $headers[] = "DNT: 1"; $headers[] = "Connection: close"; $headers[] = "Content-Type: application/x-www-form-urlencoded"; curl_setopt($ch, CURLOPT_POST, 1); curl_setopt($ch, CURLOPT_USERAGENT, $UGA); curl_setopt($ch, CURLOPT_HTTPHEADER, $headers); curl_setopt($ch, CURLOPT_REFERER, $referer); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_TIMEOUT,40); curl_setopt($ch, CURLOPT_RETURNTRANSFER,1); curl_setopt($ch, CURLOPT_HTTPHEADER, array('Expect:')); curl_setopt($ch,CURLOPT_SSL_VERIFYPEER, false); curl_setopt($ch, CURLOPT_POSTFIELDS,$post_full); $datas=curl_exec($ch); if(curl_errno($ch)) { echo "error:".curl_error($ch)."\n"; curl_close($ch); return false; } $info = curl_getinfo($ch); $info['datas'] = $datas; var_dump($info); curl_close($ch); return $info; }
调用:
$url = 'https://console.online.net/en/order/server_limited'; $pdata = 'server_offer=757'; $sdatas = curl_post($url,$pdata,'https://www.online.net/en'); echo $sdatas['datas'];
返回的数据结构可以去掉//var_dump($info);注释查看。
—————————————————
old:
function curl_post($url,$post_full) { $ch = curl_init(); $headers = array(); $headers[] = "Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8"; $headers[] = "Accept-Language: q=0.8,en-US;q=0.5,en;q=0.3"; $headers[] = "Accept-Encoding: gzip, deflate, br"; $headers[] = "DNT: 1"; $headers[] = "Connection: keep-alive"; $headers[] = "Content-Type: application/x-www-form-urlencoded"; curl_setopt($ch, CURLOPT_POST, 1); curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/4.0 (compatible; MSIE 10.0; Windows NT 6.1)"); curl_setopt($ch, CURLOPT_HTTPHEADER, $headers); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_TIMEOUT,40); curl_setopt($ch, CURLOPT_RETURNTRANSFER,1); curl_setopt($ch, CURLOPT_HTTPHEADER, array('Expect:')); curl_setopt($ch,CURLOPT_SSL_VERIFYPEER, false); curl_setopt($ch, CURLOPT_POSTFIELDS,$post_full); $datas=curl_exec($ch); curl_close($ch); return $datas; }
——————————————-
curl GET老的代码
function curl_get($url) { $UGA="Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1)"; $ch = curl_init(); $headers = array(); $headers[] = "Accept: */*"; $headers[] = "Cache-Control: max-age=0"; $headers[] = "Connection: keep-alive"; $headers[] = "Keep-Alive: 300"; $headers[] = "Cookie: caches="; $headers[] = "Accept-Charset: utf-8;ISO-8859-1;iso-8859-2;q=0.7,*;q=0.7"; $headers[] = "Accept-Language: en-us,en;q=0.5"; $headers[] = "Pragma: "; // browsers keep this blank. curl_setopt($ch, CURLOPT_USERAGENT, $UGA); curl_setopt($ch, CURLOPT_HTTPHEADER, $headers); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_TIMEOUT,40); curl_setopt($ch, CURLOPT_RETURNTRANSFER,1); $datas=curl_exec($ch); curl_close($ch); return $datas; }