国产一级a片免费看高清,亚洲熟女中文字幕在线视频,黄三级高清在线播放,免费黄色视频在线看

打開(kāi)APP
userphoto
未登錄

開(kāi)通VIP,暢享免費(fèi)電子書(shū)等14項(xiàng)超值服

開(kāi)通VIP
curl

原創(chuàng)作品,轉(zhuǎn)載注明出處  http://sunking.sinaapp.com/?p=111

最近使用curl的時(shí)候,發(fā)現(xiàn)了一個(gè)比較好用的函數(shù),當(dāng)然是初級(jí)者適用的一個(gè)函數(shù),就是curl_getinfo(),

在抓取一個(gè)頁(yè)面的時(shí)候,會(huì)遇到302頁(yè)面跳轉(zhuǎn)的情況,剛開(kāi)始處理的時(shí)候,是用curl抓取一個(gè)域名頁(yè)面的內(nèi)容,適用curl_exec,抓取頁(yè)面全部?jī)?nèi)容,然后用正則匹配出來(lái)用戶(hù)域名url,通過(guò)此域名再次抓取此地址的內(nèi)容,這樣做挺麻煩的,后來(lái)發(fā)現(xiàn)curl_getinfo(),返回來(lái)一個(gè)數(shù)組類(lèi)型的值,里面有一個(gè)url,有一個(gè)http_code,http_code可以是302,200,404,500等,如果是302的話(huà),就是頁(yè)面跳轉(zhuǎn),直接可以得到跳轉(zhuǎn)的頁(yè)面的url。這樣,就可以直接跳過(guò)抓取域名地址哪一步,直接獲得跳轉(zhuǎn)頁(yè)面的鏈接,直接抓取內(nèi)容就好了,下面是例子:

<?php
$url = ‘sunking18.tk’;
$ch = curl_init();
$header = array ();
$header [] = ‘sunking18.tk’;
$header [] = ‘User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; zh-CN; rv:1.9.2.8) Gecko/20100722 Firefox/3.6.8′;
$header [] = ‘Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8′;
$header [] = ‘Accept-Encoding: gzip, deflate’;
$header [] = ‘Accept-Language: zh-cn,zh;q=0.5′;
$header [] = ‘Accept-Charset: GB2312,utf-8;q=0.7,*;q=0.7′;
$header [] = ‘Keep-Alive: 115′;
$header [] = ‘Connection: Keep-Alive’;
$header [] = ‘Referer:  sunking18.tk’;

$ch = curl_init();
curl_setopt ($ch, CURLOPT_TIMEOUT, 100);
curl_setopt ($ch, CURLOPT_URL,$url);
curl_setopt ($ch, CURLOPT_HTTPHEADER,$header);
curl_setopt ($ch, CURLOPT_HEADER,true);
curl_setopt ($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt ($ch, CURLOPT_ENCODING, “gzip” ); //設(shè)置為客戶(hù)端支持gzip壓縮
$re  = curl_exec($ch);
$res = curl_getinfo($ch);
echo “<pre>”;
print_r($res);

?>

打印結(jié)果如下:

Array ( [url] => HTTP://sunking18.tk [content_type] => text/html [http_code] => 302 [header_size] => 311 [request_size] => 387 [filetime] => -1 [ssl_verify_result] => 0 [redirect_count] => 0 [total_time] => 1.467 [namelookup_time] => 1.014 [connect_time] => 1.03 [pretransfer_time] => 1.03 [size_upload] => 0 [size_download] => 167 [speed_download] => 113 [speed_upload] => 0 [download_content_length] => 167 [upload_content_length] => 0 [starttransfer_time] => 1.467 [redirect_time] => 0 [certinfo] => Array ( ) )

其中,url就是302跳轉(zhuǎn)頁(yè)面url,http_code就是http狀態(tài)碼,如果想要單獨(dú)獲得其中的一個(gè)參數(shù),只要在curl_getinfo($ch,****)設(shè)置你想要的參數(shù)就可以了,比如,你想要獲得http_code,就可以使用:curl_getinfo($ch,CURLINFO_HTTP_CODE),則會(huì)返回一個(gè)http_code字符串。很方便使用。

curl_getinfo 共有20個(gè)參數(shù),如下:

這個(gè)參數(shù)可能是以下常量之一:

  • CURLINFO_EFFECTIVE_URL – 最后一個(gè)有效的URL地址
  • CURLINFO_HTTP_CODE – 最后一個(gè)收到的HTTP代碼
  • CURLINFO_FILETIME – 遠(yuǎn)程獲取文檔的時(shí)間,如果無(wú)法獲取,則返回值為“-1”
  • CURLINFO_TOTAL_TIME – 最后一次傳輸所消耗的時(shí)間
  • CURLINFO_NAMELOOKUP_TIME – 名稱(chēng)解析所消耗的時(shí)間
  • CURLINFO_CONNECT_TIME – 建立連接所消耗的時(shí)間
  • CURLINFO_PRETRANSFER_TIME – 從建立連接到準(zhǔn)備傳輸所使用的時(shí)間
  • CURLINFO_STARTTRANSFER_TIME – 從建立連接到傳輸開(kāi)始所使用的時(shí)間
  • CURLINFO_REDIRECT_TIME – 在事務(wù)傳輸開(kāi)始前重定向所使用的時(shí)間
  • CURLINFO_SIZE_UPLOAD – 上傳數(shù)據(jù)量的總值
  • CURLINFO_SIZE_DOWNLOAD – 下載數(shù)據(jù)量的總值
  • CURLINFO_SPEED_DOWNLOAD – 平均下載速度
  • CURLINFO_SPEED_UPLOAD – 平均上傳速度
  • CURLINFO_HEADER_SIZE – header部分的大小
  • CURLINFO_HEADER_OUT – 發(fā)送請(qǐng)求的字符串
  • CURLINFO_REQUEST_SIZE – 在HTTP請(qǐng)求中有問(wèn)題的請(qǐng)求的大小
  • CURLINFO_SSL_VERIFYRESULT – 通過(guò)設(shè)置CURLOPT_SSL_VERIFYPEER返回的SSL證書(shū)驗(yàn)證請(qǐng)求的結(jié)果
  • CURLINFO_CONTENT_LENGTH_DOWNLOAD – 從Content-Length: field中讀取的下載內(nèi)容長(zhǎng)度
  • CURLINFO_CONTENT_LENGTH_UPLOAD – 上傳內(nèi)容大小的說(shuō)明
  • CURLINFO_CONTENT_TYPE – 下載內(nèi)容的Content-Type:值,NULL表示服務(wù)器沒(méi)有發(fā)送有效的Content-Type: header

可以根據(jù)需要設(shè)置不同的參數(shù)。

順帶說(shuō)一下,http_code的含義:

[Informational 1xx]

$http_code["0"]=”Unable to access”;
$http_code["100"]=”Continue”;
$http_code["101"]=”Switching Protocols”;

[Successful 2xx]
$http_code["200"]=”O(jiān)K”;
$http_code["201"]=”Created”;
$http_code["202"]=”Accepted”;
$http_code["203"]=”Non-Authoritative Information”;
$http_code["204"]=”No Content”;
$http_code["205"]=”Reset Content”;
$http_code["206"]=”P(pán)artial Content”;

[Redirection 3xx]
$http_code["300"]=”Multiple Choices”;
$http_code["301"]=”Moved Permanently”;
$http_code["302"]=”Found”;
$http_code["303"]=”See Other”;
$http_code["304"]=”Not Modified”;
$http_code["305"]=”Use Proxy”;
$http_code["306"]=”(Unused)”;
$http_code["307"]=”Temporary Redirect”;

[Client Error 4xx]
$http_code["400"]=”Bad Request”;
$http_code["401"]=”Unauthorized”;
$http_code["402"]=”P(pán)ayment Required”;
$http_code["403"]=”Forbidden”;
$http_code["404"]=”Not Found”;
$http_code["405"]=”Method Not Allowed”;
$http_code["406"]=”Not Acceptable”;
$http_code["407"]=”P(pán)roxy Authentication Required”;
$http_code["408"]=”Request Timeout”;
$http_code["409"]=”Conflict”;
$http_code["410"]=”Gone”;
$http_code["411"]=”Length Required”;
$http_code["412"]=”P(pán)recondition Failed”;
$http_code["413"]=”Request Entity Too Large”;
$http_code["414"]=”Request-URI Too Long”;
$http_code["415"]=”Unsupported Media Type”;
$http_code["416"]=”Requested Range Not Satisfiable”;
$http_code["417"]=”Expectation Failed”;

[Server Error 5xx]
$http_code["500"]=”Internal Server Error”;
$http_code["501"]=”Not Implemented”;
$http_code["502"]=”Bad Gateway”;
$http_code["503"]=”Service Unavailable”;
$http_code["504"]=”Gateway Timeout”;
$http_code["505"]=”HTTP Version Not Supported”;

本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶(hù)發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊舉報(bào)
打開(kāi)APP,閱讀全文并永久保存 查看更多類(lèi)似文章
猜你喜歡
類(lèi)似文章
PHP中curl 的用法總結(jié)
初窺curl[整理] - Bring煮義
libcurl使用心得
[php]通過(guò)http post發(fā)送json數(shù)據(jù)
curl拿淘寶寶貝json里的價(jià)格
優(yōu)酷m3u8解析php,帶清晰度調(diào)節(jié)
更多類(lèi)似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長(zhǎng)圖 關(guān)注 下載文章
綁定賬號(hào)成功
后續(xù)可登錄賬號(hào)暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服