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