mode | 說明 |
‘r' | 只讀方式打開,將文件指針指向文件頭。 |
‘r+' | 讀寫方式打開,將文件指針指向文件頭。 |
‘w' | 寫入方式打開,將文件指針指向文件頭并將文件大小截為零。如果文件不存在則嘗試創(chuàng)建之。 |
‘w+' | 讀寫方式打開,將文件指針指向文件頭并將文件大小截為零。如果文件不存在則嘗試創(chuàng)建之。 |
‘a' | 寫入方式打開,將文件指針指向文件末尾。如果文件不存在則嘗試創(chuàng)建之。 |
‘a+' | 讀寫方式打開,將文件指針指向文件末尾。如果文件不存在則嘗試創(chuàng)建之。 |
‘x' | 創(chuàng)建并以寫入方式打開,將文件指針指向文件頭。如果文件已存在,則 fopen() 調用失敗并返回 FALSE,并生成一條 E_WARNING 級別的錯誤信息。如果文件不存在則嘗試創(chuàng)建之。這和給 底層的 open(2) 系統(tǒng)調用指定 O_EXCL|O_CREAT 標記是等價的。此選項被 PHP 4.3.2 以及以后的版本所支持,僅能用于本地文件。 |
‘x+' | 創(chuàng)建并以讀寫方式打開,將文件指針指向文件頭。如果文件已存在,則 fopen() 調用失敗并返回 FALSE,并生成一條 E_WARNING 級別的錯誤信息。如果文件不存在則嘗試創(chuàng)建之。這和給 底層的 open(2) 系統(tǒng)調用指定 O_EXCL|O_CREAT 標記是等價的。此選項被 PHP 4.3.2 以及以后的版本所支持,僅能用于本地文件。 |
下面代碼是我通過利用函數(shù)fopen創(chuàng)建一個名為Demo,格式為txt的文件,并在文件中寫入"Welcome To ItCodeWorld!"的數(shù)據(jù)。
?php //要創(chuàng)建的兩個文件 $TxtFileName = "Demo.txt"; //以讀寫方式打寫指定文件,如果文件不存則創(chuàng)建 if( ($TxtRes=fopen ($TxtFileName,"w+")) === FALSE){ echo("創(chuàng)建可寫文件:".$TxtFileName."失敗"); exit(); } echo ("創(chuàng)建可寫文件".$TxtFileName."成功!/br>"); $StrConents = "Welcome To ItCodeWorld!";//要 寫進文件的內容 if(!fwrite ($TxtRes,$StrConents)){ //將信息寫入文件 echo ("嘗試向文件".$TxtFileName."寫入".$StrConents."失??!"); fclose($TxtRes); exit(); } echo ("嘗試向文件".$TxtFileName."寫入".$StrConents."成功!"); fclose ($TxtRes); //關閉指針 ?>
PHP 創(chuàng)建文件 – fopen()
fopen()
函數(shù)也用于創(chuàng)建文件。也許有點混亂,但是在 PHP 中,創(chuàng)建文件所用的函數(shù)與打開文件的相同。
如果您用 fopen()
打開并不存在的文件,此函數(shù)會創(chuàng)建文件,假定文件被打開為寫入(w)或增加(a)。
下面的例子創(chuàng)建名為 "testfile.txt" 的新文件。此文件將被創(chuàng)建于 PHP 代碼所在的相同目錄中:
實例
$myfile = fopen("testfile.txt", "w")
PHP 文件權限
如果您試圖運行這段代碼時發(fā)生錯誤,請檢查您是否有向硬盤寫入信息的 PHP 文件訪問權限。
PHP 寫入文件 – fwrite()
fwrite()
函數(shù)用于寫入文件。
fwrite()
的第一個參數(shù)包含要寫入的文件的文件名,第二個參數(shù)是被寫的字符串。
下面的例子把姓名寫入名為 "newfile.txt" 的新文件中:
實例
?php $myfile = fopen("newfile.txt", "w") or die("Unable to open file!"); $txt = "Bill Gates\n"; fwrite($myfile, $txt); $txt = "Steve Jobs\n"; fwrite($myfile, $txt); fclose($myfile); ?>
請注意,我們向文件 "newfile.txt" 寫了兩次。在每次我們向文件寫入時,在我們發(fā)送的字符串 $txt 中,第一次包含 "Bill Gates",第二次包含 "Steve Jobs"。在寫入完成后,我們使用 fclose()
函數(shù)來關閉文件。
如果我們打開 "newfile.txt" 文件,它應該是這樣的:
Bill Gates
Steve Jobs
PHP 覆蓋(Overwriting)
如果現(xiàn)在 "newfile.txt" 包含了一些數(shù)據(jù),我們可以展示在寫入已有文件時發(fā)生的的事情。所有已存在的數(shù)據(jù)會被擦除并以一個新文件開始。
在下面的例子中,我們打開一個已存在的文件 "newfile.txt",并向其中寫入了一些新數(shù)據(jù):
實例
?php $myfile = fopen("newfile.txt", "w") or die("Unable to open file!"); $txt = "Mickey Mouse\n"; fwrite($myfile, $txt); $txt = "Minnie Mouse\n"; fwrite($myfile, $txt); fclose($myfile); ?>
如果現(xiàn)在我們打開這個 “newfile.txt” 文件,Bill 和 Steve 都已消失,只剩下我們剛寫入的數(shù)據(jù):
Mickey Mouse
Minnie Mouse
換行符‘\n'和回車符‘\r'
顧名思義,換行符就是另起一行,回車符就是回到一行的開頭,所以我們平時編寫文件的回車符應該確切來說叫做回車換行符
‘\n' 10 換行(newline)
‘\r' 13 回車(return)
也可以表示為'\x0a'和'\x0d'.(16進制)
在windows系統(tǒng)下,回車換行符號是”\r\n”.但是在Linux等系統(tǒng)下是沒有”\r”符號的。
在解析文本或其他格式的文件內容時,常常要碰到判定回車換行的地方,這個時候就要注意既要判定”\r\n”又要判定”\n”。
寫程序時可能得到一行,將其進行trim掉'\r',這樣能得到你所需要的string了。
PHP file_put_contents() 函數(shù)
PHP file_put_contents() 函數(shù)是一次性向文件寫入字符串或追加字符串內容的最合適選擇。
file_put_contents()
函數(shù)用于把字符串寫入文件,成功返回寫入到文件內數(shù)據(jù)的字節(jié)數(shù),失敗則返回 FALSE。
語法:
int file_put_contents ( string filename, string data [, int flags [, resource context]] )
參數(shù)說明:
參數(shù) | 說明 |
filename | 要寫入數(shù)據(jù)的文件名 |
data | 要寫入的數(shù)據(jù)。類型可以是 string,array(但不能為多維數(shù)組),或者是 stream 資源 |
flags | 可選,規(guī)定如何打開/寫入文件??赡艿闹担?br />
1. FILE_USE_INCLUDE_PATH:檢查 filename 副本的內置路徑 2. FILE_APPEND:在文件末尾以追加的方式寫入數(shù)據(jù) 3. LOCK_EX:對文件上鎖 |
context | 可選,Context是一組選項,可以通過它修改文本屬性 |
例子:
?php echo file_put_contents("test.txt", "This is something."); ?>
運行該例子,瀏覽器輸出:
18
而 test.txt 文件(與程序同目錄下)內容則為:This is something.。
提示
如果文件不存在,則創(chuàng)建文件,相當于fopen()
函數(shù)行為。
如果文件存在,默認將清空文件內的內容,可設置 flags 參數(shù)值為 FILE_APPEND 以避免(見下)。
本函數(shù)可安全用于二進制對象。
以追加形式寫入內容
當設置 flags 參數(shù)值為 FILE_APPEND 時,表示在已有文件內容后面追加內容的方式寫入新數(shù)據(jù):
?php file_put_contents("test.txt", "This is another something.", FILE_APPEND); ?>
執(zhí)行程序后,test.txt 文件內容變?yōu)椋?/p>
This is something.This is another something.
file_put_contents()
的行為實際上等于依次調用 fopen()
,fwrite()
以及 fclose()
功能一樣。
更多關于PHP相關內容感興趣的讀者可查看本站專題:《php文件操作總結》、《PHP運算與運算符用法總結》、《PHP網絡編程技巧總結》、《PHP基本語法入門教程》、《php面向對象程序設計入門教程》、《php字符串(string)用法總結》、《php+mysql數(shù)據(jù)庫操作入門教程》及《php常見數(shù)據(jù)庫操作技巧匯總》
希望本文所述對大家PHP程序設計有所幫助。