這篇文章主要介紹了PHP使用feof()函數讀文件的方法,以實例形式對比了正確與錯誤的用法,闡明了feof()函數的使用技巧,需要的朋友可以參考下
本文實例講述了PHP使用feof()函數讀取檔案的方法。分享給大家供大家參考。具體用法如下:
feof應用於PHP 4, PHP 5
-用來測試檔案指標是否到了檔案結束的位置。
如果伺服器沒有關閉由 fsockopen() 所開啟的連接,feof() 會一直等待直到逾時而返回TRUE。預設的逾時限制是 60 秒,可以使用 stream_set_timeout() 來改變這個值。
檔案指標必須是有效的,必須指向由 fopen() 或fsockopen() 成功開啟的檔案(並還未由fclose() 關閉)。
如果傳遞的檔案指標無效可能會陷入無限循環中,因為 EOF 不會傳回 TRUE。
Example #1 使用無效檔案指標的 feof() 範例:
<?<span style="color: #000000">php </span><span style="color: #008000">//</span><span style="color: #008000"> 如果文件不可读取或者不存在,fopen 函数返回 FALSE</span> <span style="color: #800080">$file</span> = @<span style="color: #008080">fopen</span>("http://www.manongjc.com/article/1329.html", "r"<span style="color: #000000">); </span><span style="color: #008000">//</span><span style="color: #008000"> 来自 fopen 的 FALSE 会发出一条警告信息并在这里陷入无限循环. </span> <span style="color: #0000ff">while</span> (!<span style="color: #008080">feof</span>(<span style="color: #800080">$file</span><span style="color: #000000">)) { } </span><span style="color: #008080">fclose</span>(<span style="color: #800080">$file</span><span style="color: #000000">); </span>?>
範例:
<?<span style="color: #000000">php </span><span style="color: #800080">$file</span> = <span style="color: #008080">fopen</span>(<span style="color: #800080">$_SERVER</span>['DOCUMENT_ROOT']."/me/test.txt", "r"<span style="color: #000000">); </span><span style="color: #008000">//</span><span style="color: #008000"> http://www.manongjc.com/article/1328.html //输出文本中所有的行,直到文件结束为止。 </span> <span style="color: #0000ff">while</span>(! <span style="color: #008080">feof</span>(<span style="color: #800080">$file</span><span style="color: #000000">)) { </span><span style="color: #0000ff">echo</span> <span style="color: #008080">fgets</span>(<span style="color: #800080">$file</span>). "<br />"<span style="color: #000000">; } </span><span style="color: #008080">fclose</span>(<span style="color: #800080">$file</span><span style="color: #000000">); </span>?>
輸出:
Hello, this is a test file.
There are three lines here.
This is the last line.