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

贊助商

分類(lèi)目錄

贊助商

最新文章

搜索

fopen()和file_get_contents()打開(kāi)URL獲得網(wǎng)頁(yè)內(nèi)容的用法區(qū)別

作者:admin    時(shí)間:2013-5-24 7:43:35    瀏覽:

在php里,要想打開(kāi)網(wǎng)頁(yè)URL獲得網(wǎng)頁(yè)內(nèi)容,比較常用的函數(shù)是fopen()和file_get_contents()。如果要求不苛刻,此兩個(gè)函數(shù)多數(shù)情況下是可以根據(jù)個(gè)人愛(ài)好任意選擇的,本文談下此兩函數(shù)的用法有什么區(qū)別,以及使用時(shí)需要注意的問(wèn)題。

fopen()打開(kāi)URL

下面是一個(gè)使用fopen()打開(kāi)URL的例子:

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

從此例子可以看到,fopen()打開(kāi)網(wǎng)頁(yè)后,返回的$fh不是字符串,不能直輸出的,還需要用到fgets()這個(gè)函數(shù)來(lái)獲取字符串。fgets()函數(shù)是從文件指針中讀取一行。文件指針必須是有效的,必須指向由 fopen() 或 fsockopen() 成功打開(kāi)的文件(并還未由 fclose() 關(guān)閉)。

可知,fopen()返回的只是一個(gè)資源,如果打開(kāi)失敗,本函數(shù)返回 FALSE 。

file_get_contents()打開(kāi)URL

下面是一個(gè)使用file_get_contents()打開(kāi)URL的例子:

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

從此例子看到,file_get_contents()打開(kāi)網(wǎng)頁(yè)后,返回的$fh是一個(gè)字符串,可以直接輸出的。

通過(guò)上面兩個(gè)例子的對(duì)比,可以看出使用file_get_contents()打開(kāi)URL,也許是更多人的選擇,因?yàn)槠浔萬(wàn)open()更簡(jiǎn)單便捷。

不過(guò),如果是讀取比較大的資源,則是用fopen()比較合適。

知識(shí)擴(kuò)充

file_get_contents()模擬referer,cookie, 使用proxy等等

參考代碼

ini_set('default_socket_timeout',120);
ini_set('user_agent','MSIE 6.0;');
$context=array('http' => array ('header'=> 'Referer: http://www.baidu.com/', ),);
$xcontext = stream_context_create($context);
echo $str=file_get_contents('http://howtostagehomes.com/',FALSE,$xcontext);

導(dǎo)讀ini_set()的實(shí)例及用法

標(biāo)簽: fopen  file_get_contents  
相關(guān)文章
    x
    • 站長(zhǎng)推薦
    /* 左側(cè)顯示文章內(nèi)容目錄 */