PHP使用fopen與file_get_contents讀取文件實例分享
php中讀取文件可以使用fopen和file_get_contents這兩個函數(shù),二者之間沒有本質(zhì)區(qū)別,只是前者讀取文件的php代碼相比后者要復(fù)雜一點。本文章通過實例向大家講解fopen和file_get_contents讀取文件的實現(xiàn)代碼。需要的碼農(nóng)可以參考一下。
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函數(shù)。
file_get_contents讀取文件的代碼如下:
<?php if (file_exists($path)) { $body = file_get_contents($path); echo $body; //輸入文件內(nèi)容 } else { echo "文件不存在 $path"; } ?>
這個函數(shù)是一次性讀取所有文件內(nèi)容并顯示出來,但是如果文件超大會導(dǎo)致php占很大的內(nèi)存了。
當然還有像file這種一般是把文件讀成數(shù)組了,同時也可以實現(xiàn)讀取文件了
下面給大家介紹下fopen()和file_get_contents()打開URL獲得網(wǎng)頁內(nèi)容的用法區(qū)別
在php里,要想打開網(wǎng)頁URL獲得網(wǎng)頁內(nèi)容,比較常用的函數(shù)是fopen()和file_get_contents()。如果要求不苛刻,此兩個函數(shù)多數(shù)情況下是可以根據(jù)個人愛好任意選擇的,本文談下此兩函數(shù)的用法有什么區(qū)別,以及使用時需要注意的問題。
fopen()打開URL
下面是一個使用fopen()打開URL的例子:
<?php $fh = fopen('http://www.baidu.com/', 'r'); if($fh){ while(!feof($fh)) { echo fgets($fh); } } ?>
從此例子可以看到,fopen()打開網(wǎng)頁后,返回的$fh不是字符串,不能直輸出的,還需要用到fgets()這個函數(shù)來獲取字符串。fgets()函數(shù)是從文件指針中讀取一行。文件指針必須是有效的,必須指向由 fopen() 或 fsockopen() 成功打開的文件(并還未由 fclose() 關(guān)閉)。
可知,fopen()返回的只是一個資源,如果打開失敗,本函數(shù)返回 FALSE 。
file_get_contents()打開URL
下面是一個使用file_get_contents()打開URL的例子:
<?php $fh= file_get_contents('http://www.baidu.com/'); echo $fh; ?>
從此例子看到,file_get_contents()打開網(wǎng)頁后,返回的$fh是一個字符串,可以直接輸出的。
通過上面兩個例子的對比,可以看出使用file_get_contents()打開URL,也許是更多人的選擇,因為其比fopen()更簡單便捷。
不過,如果是讀取比較大的資源,則是用fopen()比較合適。
相關(guān)文章
基于PHP+jQuery+MySql實現(xiàn)紅藍(頂踩)投票代碼
當雙方意見不統(tǒng)一的情況下,需要用投票達成協(xié)議,本文通過實例給大家介紹基于PHP+jQuery+MySql實現(xiàn)紅藍(頂踩)投票代碼,需要的朋友可以參考下2015-08-08基于PHP實現(xiàn)短信驗證碼接口(容聯(lián)運通訊)
本文分步驟給大家講解了短信驗證碼接口(容聯(lián)運通訊)實現(xiàn)代碼,非常不錯,具有參考借鑒價值,感興趣的朋友一起看看吧2016-09-09PHP stream_context_create()函數(shù)的使用示例
這篇文章主要介紹了PHP stream_context_create()函數(shù)的使用示例,stream_context_create()函數(shù)是用來 創(chuàng)建打開文件的上下文件選項,用于fopen(),file_get_contents()等過程的超時設(shè)置、代理服務(wù)器、請求方式、頭信息設(shè)置的特殊過程,需要的朋友可以參考下2015-05-05thinkPHP5框架整合plupload實現(xiàn)圖片批量上傳功能的方法
這篇文章主要介紹了thinkPHP5框架整合plupload實現(xiàn)圖片批量上傳功能的方法,結(jié)合實例形式分析了thinkPHP結(jié)合pluploadQueue實現(xiàn)上傳功能的相關(guān)操作技巧,需要的朋友可以參考下2017-11-11