2009年10月29日 星期四

[PHP]如何讀取另一個網頁的內容?

如何使用PHP讀取另一個網頁的內容,甚至是URL有帶參數的內容?
經測試有以下三種方式:

一、使用 file_get_contents() 函式
Example:

$siteurl = "http://tw.yahoo.com/";
$content = file_get_contents($siteurl);
echo $content;


二、自製 readweb() 函式
Example:

function readweb($weburl){
$reContent = "";
$fp = fopen($weburl,"r");
while(!feof($fp)) {
$reContent .= fgets($fp,100);
}
fclose($fp);
return $reContent;
}
$siteurl = "http://tw.yahoo.com/";
$content = readweb($siteurl);
echo $content;


三、使用 ob_** 系列函式
Example:

$siteurl = "http://tw.yahoo.com/";
ob_start();
require($siteurl);
$content = ob_get_contents();
ob_end_clean();
echo $content;


要注意的事項如下:
  1. 指定讀取的頁面最好為「http://」開頭的網址。
  2. 讀取「http://localhost/」的網址可能會因為本機的安全機制受到影響,在測試時可改用本機IP來進行測試,上傳到實際網址則不受影響。