php fopen()和file_get_contents() 區別介紹
php中讀取文件可以使用fopen和file_get_contents這兩個(gè)函數,二者之間沒(méi)有本質(zhì)區別,只是前者讀取文件的php代碼相比后者要復雜一點(diǎn)。本文章通過(guò)實(shí)例向大家講解fopen和file_get_contents讀取文件的實(shí)現代碼。
fopen讀取文件的代碼如下:
<?php
$file_name = "1.txt";
echo $file_name . "
";
$fp = fopen($file_name, 'r');
//$buffer=fgets($fp);
while (!feof($fp)) {
$buffer = fgets($fp);
echo $buffer;
}
fclose($fp);
?>
注意fopen讀取文件需要配合使用fgets和fclose函數。
file_get_contents讀取文件的代碼如下:
<?php
if (file_exists($path)) {
$body = file_get_contents($path);
echo $body; //輸入文件內容
} else {
echo "文件不存在 $path";
}
?>
這個(gè)函數是一次性讀取所有文件內容并顯示出來(lái),但是如果文件超大會(huì )導致php占很大的內存了。
當然還有像file這種一般是把文件讀成數組了,同時(shí)也可以實(shí)現讀取文件了
下面給大家介紹下fopen()和file_get_contents()打開(kāi)URL獲得網(wǎng)頁(yè)內容的用法區別
在php里,要想打開(kāi)網(wǎng)頁(yè)URL獲得網(wǎng)頁(yè)內容,比較常用的函數是fopen()和file_get_contents()。如果要求不苛刻,此兩個(gè)函數多數情況下是可以根據個(gè)人愛(ài)好任意選擇的,本文談下此兩函數的用法有什么區別,以及使用時(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è)函數來(lái)獲取字符串。fgets()函數是從文件指針中讀取一行。文件指針必須是有效的,必須指向由 fopen() 或 fsockopen() 成功打開(kāi)的文件(并還未由 fclose() 關(guān)閉)。
可知,fopen()返回的只是一個(gè)資源,如果打開(kāi)失敗,本函數返回 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è)例子的對比,可以看出使用file_get_contents()打開(kāi)URL,也許是更多人的選擇,因為其比f(wàn)open()更簡(jiǎn)單便捷。
不過(guò),如果是讀取比較大的資源,則是用fopen()比較合適。
版權聲明: 本站僅提供信息存儲空間服務(wù),旨在傳遞更多信息,不擁有所有權,不承擔相關(guān)法律責任,不代表本網(wǎng)贊同其觀(guān)點(diǎn)和對其真實(shí)性負責。如因作品內容、版權和其它問(wèn)題需要同本網(wǎng)聯(lián)系的,請發(fā)送郵件至 舉報,一經(jīng)查實(shí),本站將立刻刪除。