技術(shù)頻道導(dǎo)航
HTML/CSS
.NET技術(shù)
IIS技術(shù)
PHP技術(shù)
Js/JQuery
Photoshop
Fireworks
服務(wù)器技術(shù)
操作系統(tǒng)
網(wǎng)站運營

贊助商

分類目錄

贊助商

最新文章

搜索

php獲得網(wǎng)頁源代碼抓取網(wǎng)頁內(nèi)容的幾種方法

作者:admin    時間:2013-5-25 15:38:36    瀏覽:

這里收集了3種利用php獲得網(wǎng)頁源代碼抓取網(wǎng)頁內(nèi)容的方法,我們可以根據(jù)實際需要選用。

1、使用file_get_contents獲得網(wǎng)頁源代碼

這個方法最常用,只需要兩行代碼即可,非常簡單方便。

參考代碼:

<?php
$fh= file_get_contents('http://howtostagehomes.com/');
echo $fh;
?>

2、使用fopen獲得網(wǎng)頁源代碼

這個方法用的人也不少,不過代碼有點多。

參考代碼:

<?php
$fh = fopen('http://howtostagehomes.com/', 'r');
if($fh){
    while(!feof($fh)) {
        echo fgets($fh);
    }
}
?>

3、使用curl獲得網(wǎng)頁源代碼

使用curl獲得網(wǎng)頁源代碼的做法,往往是需要更高要求的人使用,例如當你需要在抓取網(wǎng)頁內(nèi)容的同時,得到網(wǎng)頁header信息,還有ENCODING編碼的使用,USERAGENT的使用等等。

參考代碼一:

<?php
// 創(chuàng)建一個新cURL資源
$ch = curl_init();
// 設(shè)置URL和相應(yīng)的選項
curl_setopt($ch, CURLOPT_URL, "http://howtostagehomes.com/");
curl_setopt($ch, CURLOPT_HEADER, false);
// 抓取URL并把它傳遞給瀏覽器
$data = curl_exec($ch);
echo $data;
//關(guān)閉cURL資源,并且釋放系統(tǒng)資源
curl_close($ch);
?>

參考代碼二:

<?php
$szUrl = "http://howtostagehomes.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時表示程序執(zhí)行成功 如何從curl_errno返回值獲取錯誤信息
exit();
?>

上例里使用了幾個curl_setopt()參數(shù)的定義,HEADER、ENCODING、USERAGENT等,可以參考這里http://cn2.php.net/curl_setopt查看更多參數(shù)及用途。

需要注意的是,在使用curl_init()之前,你需要做下php.ini的安全設(shè)置,否則該函數(shù)不能執(zhí)行??梢詤⒖枷逻@篇文章解決IIS運行PHP出現(xiàn)Call to undefined function curl_init()的問題進行設(shè)置。

導(dǎo)讀fopen()和file_get_contents()打開URL獲得網(wǎng)頁內(nèi)容的用法區(qū)別

標簽: php  fopen  file_get_contents  curl  
x
  • 站長推薦
/* 左側(cè)顯示文章內(nèi)容目錄 */