CURL與user-agent如何在php項目中使用-創(chuàng)新互聯(lián)

這篇文章將為大家詳細講解有關(guān)CURL與user-agent如何在php項目中使用,文章內(nèi)容質(zhì)量較高,因此小編分享給大家做個參考,希望大家閱讀完這篇文章后對相關(guān)知識有一定的了解。

創(chuàng)新互聯(lián)建站堅持“要么做到,要么別承諾”的工作理念,服務(wù)領(lǐng)域包括:成都網(wǎng)站設(shè)計、網(wǎng)站建設(shè)、企業(yè)官網(wǎng)、英文網(wǎng)站、手機端網(wǎng)站、網(wǎng)站推廣等服務(wù),滿足客戶于互聯(lián)網(wǎng)時代的武江網(wǎng)站設(shè)計、移動媒體設(shè)計的需求,幫助企業(yè)找到有效的互聯(lián)網(wǎng)解決方案。努力成為您成熟可靠的網(wǎng)絡(luò)建設(shè)合作伙伴!

get_meta_tags()函數(shù)用于抓取網(wǎng)頁中<meta name="A" content="1"><meta name="B" content="2">形式的標(biāo)簽,并裝入一維數(shù)組,name為元素下標(biāo),content為元素值,上例中的標(biāo)簽可以獲得數(shù)組:array('A'=>'1', 'b'=>'2'),其他<meta>標(biāo)簽不處理,并且此函數(shù)只處理到</head>標(biāo)簽時截止,之后的<meta>也不再繼續(xù)處理,不過<head>之前的<meta>還是會處理.


user-agent是瀏覽器在向服務(wù)器請求網(wǎng)頁時,提交的不可見的頭信息的一部分,頭信息是一個數(shù)組,包含多個信息,比如本地緩存目錄,cookies等,其中user-agent是瀏覽器類型申明,比如IE、Chrome、FF等.

今天在抓取一個網(wǎng)頁的<meta>標(biāo)簽的時候,總是得到空值,但是直接查看網(wǎng)頁源代碼又是正常的,于是懷疑是否服務(wù)器設(shè)置了根據(jù)頭信息來判斷輸出,先嘗試使用get_meta_tags()來抓取一個本地的文件,然后這個本地文件將獲取的頭信息寫入文件,結(jié)果如下,其中替換成了/,方便查看,代碼如下:


array ( 
  'HTTP_HOST' => '192.168.30.205', 
  'PATH' => 'C:/Program Files/Common Files/NetSarang;C:/Program Files/NVIDIA Corporation/PhysX/Common;C:/Program Files/Common Files/Microsoft Shared/Windows Live;C:/Program Files/Intel/iCLS Client/;C:/Windows/system32;C:/Windows;C:/Windows/System32/Wbem;C:/Windows/System32/WindowsPowerShell/v1.0/;C:/Program Files/Intel/Intel(R) Management Engine Components/DAL;C:/Program Files/Intel/Intel(R) Management Engine Components/IPT;C:/Program Files/Intel/OpenCL SDK/2.0/bin/x86;C:/Program Files/Common Files/Thunder Network/KanKan/Codecs;C:/Program Files/QuickTime Alternative/QTSystem;C:/Program Files/Windows Live/Shared;C:/Program Files/QuickTime Alternative/QTSystem/; %JAVA_HOME%/bin;%JAVA_HOME%/jre/bin;', 
  'SystemRoot' => 'C:/Windows', 
  'COMSPEC' => 'C:/Windows/system32/cmd.exe', 
  'PATHEXT' => '.COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH;.MSC', 
  'WINDIR' => 'C:/Windows', 
  'SERVER_SIGNATURE' => '', 
  'SERVER_SOFTWARE' => 'Apache/2.2.11 (Win32) PHP/5.2.8', 
  'SERVER_NAME' => '192.168.30.205', 
  'SERVER_ADDR' => '192.168.30.205', 
  'SERVER_PORT' => '80', 
  'REMOTE_ADDR' => '192.168.30.205', 
  'DOCUMENT_ROOT' => 'E:/wamp/www', 
  'SERVER_ADMIN' => 'admin@admin.com', 
  'SCRIPT_FILENAME' => 'E:/wamp/www/user-agent.php', 
  'REMOTE_PORT' => '59479', 
  'GATEWAY_INTERFACE' => 'CGI/1.1', 
  'SERVER_PROTOCOL' => 'HTTP/1.0', 
  'REQUEST_METHOD' => 'GET', 
  'QUERY_STRING' => '', 
  'REQUEST_URI' => '/user-agent.php', 
  'SCRIPT_NAME' => '/user-agent.php', 
  'PHP_SELF' => '/user-agent.php', 
  'REQUEST_TIME' => 1400747529, 
)

果然在數(shù)組中沒有HTTP_USER_AGENT這個元素,apache在向另外一臺服務(wù)器發(fā)送請求的時候是沒有UA的,之后查了一下資料,get_meta_tags()函數(shù)沒有偽造UA的能力,所以只能使用其他辦法解決了.

后來使用CURL來獲取,就獲取到了網(wǎng)頁,不過使用上稍微麻煩一點,首先偽造UA,獲取之后在使用正則表達式分析<meta>.

偽造辦法,代碼如下:


// 初始化一個 cURL 
$curl = curl_init(); 
 
// 設(shè)置你需要抓取的URL 
curl_setopt($curl, CURLOPT_URL, 'http://localhost/user-agent.php'); 
 
// 設(shè)置是否將文件頭輸出到瀏覽器,0不輸出 
curl_setopt($curl, CURLOPT_HEADER, 0); 
 
// 設(shè)置UA,這里是將瀏覽器的UA轉(zhuǎn)發(fā)到服務(wù)器,也可以手動指定值 
curl_setopt($curl, CURLOPT_USERAGENT, $_SERVER['HTTP_USER_AGENT']); 
 
// 設(shè)置cURL 參數(shù),要求結(jié)果返回到字符串中還是輸出到屏幕上。0輸出屏幕并返回操作結(jié)果的BOOL值,1返回字符串 
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); 
// 運行cURL,請求網(wǎng)頁 
$data = curl_exec($curl); 
 
// 關(guān)閉URL請求 
curl_close($curl); 
 
// 處理獲得的數(shù)據(jù) 
var_dump($data);

關(guān)于CURL與user-agent如何在php項目中使用就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,可以學(xué)到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。

網(wǎng)頁題目:CURL與user-agent如何在php項目中使用-創(chuàng)新互聯(lián)
URL標(biāo)題:http://muchs.cn/article6/csjjog.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站策劃、網(wǎng)站設(shè)計、域名注冊、ChatGPT、靜態(tài)網(wǎng)站網(wǎng)站營銷

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

成都seo排名網(wǎng)站優(yōu)化