php獲取網頁內容的三種方法
阿新 • • 發佈:2018-12-30
3種利用php獲得網頁原始碼抓取網頁內容的方法,我們可以根據實際需要選用。 1、使用file_get_contents獲得網頁原始碼 這個方法最常用,只需要兩行程式碼即可,非常簡單方便。 參考程式碼: <?php $fh= file_get_contents('http://www.webkaka.com/'); echo $fh; ?> 2、使用fopen獲得網頁原始碼 這個方法用的人也不少,不過程式碼有點多。 參考程式碼: <?php $fh = fopen('http://www.webkaka.com/', 'r'); if($fh){ while(!feof($fh)) { echo fgets($fh); } } ?> 3、使用curl獲得網頁原始碼 使用curl獲得網頁原始碼的做法,往往是需要更高要求的人使用,例如當你需要在抓取網頁內容的同時,得到網頁header資訊,還有ENCODING編碼的使用,USERAGENT的使用等等。 參考程式碼一: <?php // 建立一個新cURL資源 $ch = curl_init(); // 設定URL和相應的選項 curl_setopt($ch, CURLOPT_URL, "http://www.webkaka.com/"); curl_setopt($ch, CURLOPT_HEADER, false); // 抓取URL並把它傳遞給瀏覽器 $data = curl_exec($ch); echo $data; //關閉cURL資源,並且釋放系統資源 curl_close($ch); ?> 參考程式碼二: <?php $szUrl = "http://www.webkaka.com/"; $UserAgent = 'Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0; SLCC1; .NET CLR 2.0.50727; .NET CLR 3.0.04506; .NET CLR 3.5.21022; .NET CLR 1.0.3705; .NET CLR 1.1.4322)'; $curl = curl_init(); curl_setopt($curl, CURLOPT_URL, $szUrl); curl_setopt($curl, CURLOPT_HEADER, 0); //0表示不輸出Header,1表示輸出 curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false); curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, false); curl_setopt($curl, CURLOPT_ENCODING, ''); curl_setopt($curl, CURLOPT_USERAGENT, $UserAgent); curl_setopt($curl, CURLOPT_FOLLOWLOCATION, 1); $data = curl_exec($curl); echo $data; //echo curl_errno($curl); //返回0時表示程式執行成功 exit(); ?>