一,PHP如何讀取文件 PHP讀取文件可以讀取當(dāng)前服務(wù)器或遠(yuǎn)程服務(wù)器中的文件。其步驟是:打開文件、讀文件和關(guān)閉文件。 1,PHP如何打開文件 使用PHP函數(shù)fopen()打開一個文件,fopen()一般使用2個參數(shù)表示打開文件的路徑和文件模式。比如: $fp=fopen("../cnbruce.txt",'w');
其中 "../cnbruce.txt" 就表示打開的cnbruce.txt文件的路徑(相對當(dāng)前執(zhí)行程序文件的路徑),'w'表示以只寫的方式打開該文本文件。
附錄:fopen()函數(shù)的文件模式總結(jié) r 只讀——讀模式,打開文件,從文件頭開始讀
r+ 可讀可寫方式打開文件,從文件頭開始讀寫
w 只寫——寫方式打開文件,同時把該文件內(nèi)容清空,把文件指針指向文件開始處。如果該文件已經(jīng)存在,將刪除文件已有內(nèi)容;如果該文件不存在,則建立該文件
w+ 可讀可寫方式打開文件,同時把該文件內(nèi)容清空,把文件指針指向文件開始處。如果該文件不存在,則建立該文件
a 追加 以只寫方式打開文件,把文件指針指向文件末尾處。如果該文件不存在,則建立該文件
a+ 追加 以可讀可寫方式打開文件,把文件指針指向文件末尾處。如果該文件不存在,則建立該文件
b 二進(jìn)制 用于于其他模式進(jìn)行連接。建議使用該選項,以獲得更大程度的可移植性 |
注意,如果fopen()函數(shù)調(diào)用失敗,函數(shù)將返回false。否則返回指針數(shù)據(jù)。所以一般在打開了文件后\讀寫文件前需要檢測下文件是否存在。 <?php @ $fp=fopen("http://www./abc123",'w'); if (!$fp) { echo'文件不存在'; exit; } ?> |
其中@符號表示PHP將抑制所有由當(dāng)前函數(shù)調(diào)用產(chǎn)生的錯誤。
2,PHP如何讀文件 在PHP打開了文件之后就需要對文件進(jìn)行讀取,一般是使用fgets()函數(shù)。 該函數(shù)可以從文件中每次讀取一行內(nèi)容,其不斷讀入數(shù)據(jù),值到遇到本行的換行符,或者全文的結(jié)束符號EOF。 介于fgets()函數(shù)只能讀取一行數(shù)據(jù),所以若需要讀取文件的所有數(shù)據(jù),須使用循環(huán)語句來完成。比如: while (!feof($fp)) { $bruce=fgets($fp); echo $bruce; } |
其中feof()函數(shù)是用來檢測文件是否結(jié)束的。該函數(shù)唯一參數(shù)就是文件指針(即$fp對應(yīng)打開的文件)。
當(dāng)然,在PHP中還可以使用readfile()函數(shù)一次讀取整個文件。該函數(shù)包括了打開文件、讀取文件并輸出到瀏覽器中和關(guān)閉文件。比如: <?php $bruce=readfile("http://www."); echo $bruce; ?> |
3,PHP如何關(guān)閉文件 使用函數(shù)fclose()就可以將文件關(guān)閉。 二,PHP如何寫數(shù)據(jù)到文件 與PHP讀取文件一樣,PHP寫入文件也需要:打開文件、寫入數(shù)據(jù)和關(guān)閉文件。打開和關(guān)閉文件的方法上面已經(jīng)說明,那PHP中寫入數(shù)據(jù)到文件是怎樣的呢。 使用fwrite()函數(shù),比如fwrite(文件路徑,寫入內(nèi)容): <?php $bruce=fopen("http://www./","r"); if(!$bruce) { echo'文件不存在'; exit; } while (!feof($bruce)) { $rose=fgets($bruce); $james=fopen("index.htm","a"); fwrite($james,$rose); fclose($james); } fclose($bruce); ?> <a href="index.htm">將的內(nèi)容生成了本地文件</a> |
了解了PHP的讀寫文件,就可以把最簡單的數(shù)據(jù)存入文本保存了。也就可以做個故事接龍了。 ============================= 其他有用的文件函數(shù): file_exists():查看文件是否存在,返回布爾值 filesize():查看文件大小,可直接echo輸出 unlink():刪除文件,注意PHP中沒有delete函數(shù)。 |
|