PHP之文件處理

1、打開文件

resource fopen( string filename, string mode [, int use_include_path [, resource zcontext]])

//文件名的路徑分隔符用“/”

//mode:文件可能通過下列模式來打開:

模式 描述
r 只讀。在文件的開頭開始。
r+ 讀/寫。在文件的開頭開始。
w 只寫。打開並清空文件的內容;如果文件不存在,則創建新文件。
w+ 讀/寫。打開並清空文件的內容;如果文件不存在,則創建新文件。
a 追加。打開並向文件文件的末端進行寫操作,如果文件不存在,則創建新文件。
a+ 讀/追加。通過向文件末端寫內容,來保持文件內容。
x 只寫。創建新文件。如果文件以存在,則返回 FALSE。

x+

讀/寫。創建新文件。如果文件已存在,則返回 FALSE 和一個錯誤。

註釋:如果 fopen() 無法打開指定文件,則返回 0 (false)。

2、讀取文件內容

(1)讀取一個字符:fgetc()從文件指針指定的位置讀取一個字符。

<span style="color:#000000;">string fgetc( resource handle)</span>
//返回一個字符,遇到EOF則返回FALSE。

(2)讀取一行字符:fgets()從文件指針中讀取一行數據。文件指針必須是有效的,並且必須指向一個由fopen()或fsockopen()成功打開的文件。

string fgets( int handle [, int length])

//length:要讀取的數據長度。

fgets()函數能夠從handle指定文件中讀取一行並返回長度最大爲length-1個字節的字符串。在遇到換行符、EOF或者讀取到了length-1個字節後停止,如果忽略length參數,那麼將讀取到行結束。註釋:在調用該函數之後,文件指針會移動到下一行。

fgetss()函數從打開的文件中讀取一行並過濾掉 HTML 和 PHP 標記。

(3)讀取任意長度的字符串:fread()讀取打開的文件。還可以讀取二進制文件。

string fread( int handle, int length)

//length指定要讀取的字節數。此函數在讀取到length個字節或到達EOF時停止執行。

filesize(handle)獲取文件數據的長度。

(4)讀取整個文件:readfile()、file()和file_get_contents()

</pre><pre class="php" name="code">int readfile( string filename [, bool use_include_path [, resource context]])

//readfile()讀取一個文件並寫入到輸出緩衝,成功返回讀取的字節數,失敗返回FALSE。


array file( string filename [, int use_include_path [, resource context]])

//file()將整個文件的內容讀入到一個數組中。成功返回數組,數組中的每個元素都是文件中對應的一行,包括換行符在內;失敗返回FALSE。


string file_get_contents( string filename [, bool use_include_path [, resource context [,int offset [, int maxlen]]]])

//file_get_contents()將文件內容讀入到一個字符串。如果有offset和maxlen參數,將在參數offset所指定的位置開始讀取長度爲maxlen的內容。失敗則返回FALSE。

應用readfile()、file()、file_get_contents()函數,不需要打開/關閉文件,不需要輸出語句,直接應用函數即可。

但是在讀取一個字符、一行字符和任意長度的字符串時必須應用fopen()函數打開文件後才能進行讀取,在讀取完成後還要應用fclose()函數關閉文件。

3、向文件中寫入數據

(1)fwrite(),別名fputs()

int fwrite( resource handle, string string [,int length])

fwrite()函數把string的內容寫入文件指針handle處。成功返回寫入的字符數,失敗FALSE。

在應用fwrite()函數時,如果給出length參數,那麼magic_quotes_runtime(php.ini文件中的選項)配置選項將被忽略,而string中的斜線將不會被抽去。如果在區分二進制文件和文本文件的系統上(如Windows)應用這個函數,打開文件時,fopen()函數的mode參數要加上'b'。

(2)file_put_contents():無需用fopen()和fclose()

將一個字符串data寫入文件中,成功返回寫入的字節數,失敗返回FALSE。

int file_put_contents( string filename, string data [, int flags [, resource context]])
本函數可安全用於二進制對象。如果“fopen wrappers”已經被激活,則在本函數中可以把URL作爲文件名來使用。

4、關閉文件指針

bool fclose( resource handle)




發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章