PHP創(chuàng)建文件,并向文件中寫入數(shù)據(jù),覆蓋,追加的實(shí)現(xiàn)代碼
創(chuàng)建文件我們用到函數(shù)
fopen ( string filename, string mode )
參數(shù)filename為創(chuàng)建文件名
參數(shù)mode為以什么方式打開文件filename
其中mode可能值列表:
mode 說明
‘r' 只讀方式打開,將文件指針指向文件頭。
‘r+' 讀寫方式打開,將文件指針指向文件頭。
‘w' 寫入方式打開,將文件指針指向文件頭并將文件大小截為零。如果文件不存在則嘗試創(chuàng)建之。
‘w+' 讀寫方式打開,將文件指針指向文件頭并將文件大小截為零。如果文件不存在則嘗試創(chuàng)建之。
‘a(chǎn)' 寫入方式打開,將文件指針指向文件末尾。如果文件不存在則嘗試創(chuàng)建之。
‘a(chǎn)+' 讀寫方式打開,將文件指針指向文件末尾。如果文件不存在則嘗試創(chuàng)建之。
‘x' 創(chuàng)建并以寫入方式打開,將文件指針指向文件頭。如果文件已存在,則 fopen() 調(diào)用失敗并返回 FALSE,并生成一條 E_WARNING 級別的錯(cuò)誤信息。如果文件不存在則嘗試創(chuàng)建之。這和給 底層的 open(2) 系統(tǒng)調(diào)用指定 O_EXCL|O_CREAT 標(biāo)記是等價(jià)的。此選項(xiàng)被 PHP 4.3.2 以及以后的版本所支持,僅能用于本地文件。
‘x+' 創(chuàng)建并以讀寫方式打開,將文件指針指向文件頭。如果文件已存在,則 fopen() 調(diào)用失敗并返回 FALSE,并生成一條 E_WARNING 級別的錯(cuò)誤信息。如果文件不存在則嘗試創(chuàng)建之。這和給 底層的 open(2) 系統(tǒng)調(diào)用指定 O_EXCL|O_CREAT 標(biāo)記是等價(jià)的。此選項(xiàng)被 PHP 4.3.2 以及以后的版本所支持,僅能用于本地文件。
下面代碼是我通過利用函數(shù)fopen創(chuàng)建一個(gè)名為Demo,格式為txt的文件,并在文件中寫入"Welcome To ItCodeWorld!"的數(shù)據(jù)。
< ?php //要?jiǎng)?chuàng)建的兩個(gè)文件 $TxtFileName = "Demo.txt"; //以讀寫方式打?qū)懼付ㄎ募?,如果文件不存則創(chuàng)建 if( ($TxtRes=fopen ($TxtFileName,"w+")) === FALSE){ echo("創(chuàng)建可寫文件:".$TxtFileName."失敗"); exit(); } echo ("創(chuàng)建可寫文件".$TxtFileName."成功!</br>"); $StrConents = "Welcome To ItCodeWorld!";//要 寫進(jìn)文件的內(nèi)容 if(!fwrite ($TxtRes,$StrConents)){ //將信息寫入文件 echo ("嘗試向文件".$TxtFileName."寫入".$StrConents."失敗!"); fclose($TxtRes); exit(); } echo ("嘗試向文件".$TxtFileName."寫入".$StrConents."成功!"); fclose ($TxtRes); //關(guān)閉指針 ?>
PHP 創(chuàng)建文件 – fopen()
fopen() 函數(shù)也用于創(chuàng)建文件。也許有點(diǎn)混亂,但是在 PHP 中,創(chuàng)建文件所用的函數(shù)與打開文件的相同。
如果您用 fopen() 打開并不存在的文件,此函數(shù)會(huì)創(chuàng)建文件,假定文件被打開為寫入(w)或增加(a)。
下面的例子創(chuàng)建名為 "testfile.txt" 的新文件。此文件將被創(chuàng)建于 PHP 代碼所在的相同目錄中:
實(shí)例
$myfile = fopen("testfile.txt", "w")
PHP 文件權(quán)限
如果您試圖運(yùn)行這段代碼時(shí)發(fā)生錯(cuò)誤,請檢查您是否有向硬盤寫入信息的 PHP 文件訪問權(quán)限。
PHP 寫入文件 – fwrite()
fwrite() 函數(shù)用于寫入文件。
fwrite() 的第一個(gè)參數(shù)包含要寫入的文件的文件名,第二個(gè)參數(shù)是被寫的字符串。
下面的例子把姓名寫入名為 "newfile.txt" 的新文件中:
實(shí)例
<?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" 寫了兩次。在每次我們向文件寫入時(shí),在我們發(fā)送的字符串 $txt 中,第一次包含 "Bill Gates",第二次包含 "Steve Jobs"。在寫入完成后,我們使用 fclose() 函數(shù)來關(guān)閉文件。
如果我們打開 "newfile.txt" 文件,它應(yīng)該是這樣的:
Bill Gates
Steve Jobs
PHP 覆蓋(Overwriting)
如果現(xiàn)在 "newfile.txt" 包含了一些數(shù)據(jù),我們可以展示在寫入已有文件時(shí)發(fā)生的的事情。所有已存在的數(shù)據(jù)會(huì)被擦除并以一個(gè)新文件開始。
在下面的例子中,我們打開一個(gè)已存在的文件 "newfile.txt",并向其中寫入了一些新數(shù)據(jù):
實(shí)例
<?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)在我們打開這個(gè) “newfile.txt” 文件,Bill 和 Steve 都已消失,只剩下我們剛寫入的數(shù)據(jù):
Mickey Mouse
Minnie Mouse
換行符‘\n'和回車符‘\r'
顧名思義,換行符就是另起一行,回車符就是回到一行的開頭,所以我們平時(shí)編寫文件的回車符應(yīng)該確切來說叫做回車換行符
‘\n' 10 換行(newline)
‘\r' 13 回車(return)
也可以表示為'\x0a'和'\x0d'.(16進(jìn)制)
在windows系統(tǒng)下,回車換行符號是”\r\n”.但是在Linux等系統(tǒng)下是沒有”\r”符號的。
在解析文本或其他格式的文件內(nèi)容時(shí),常常要碰到判定回車換行的地方,這個(gè)時(shí)候就要注意既要判定”\r\n”又要判定”\n”。
寫程序時(shí)可能得到一行,將其進(jìn)行trim掉'\r',這樣能得到你所需要的string了。
- php逐行讀取txt文件寫入數(shù)組的方法
- 解析PHP中如何將數(shù)組變量寫入文件
- php fputcsv命令 寫csv文件遇到的小問題(多維數(shù)組連接符)
- php文件操作之文件寫入字符串、數(shù)組的方法分析
- PHP使用內(nèi)置函數(shù)file_put_contents寫入文件及追加內(nèi)容的方法
- PHP創(chuàng)建文件及寫入數(shù)據(jù)(覆蓋寫入,追加寫入)的方法詳解
- php實(shí)現(xiàn)讀取和寫入tab分割的文件
- php對csv文件的讀取,寫入,輸出下載操作詳解
- PHP如何將log信息寫入服務(wù)器中的log文件
- php實(shí)現(xiàn)將數(shù)組或?qū)ο髮懭氲轿募姆椒ㄐ〗Y(jié)【三種方法】
相關(guān)文章
php如何實(shí)現(xiàn)不借助IDE快速定位行數(shù)或者方法定義的文件和位置
這篇文章主要介紹了php如何實(shí)現(xiàn)不借助IDE快速定位行數(shù)或者方法定義的文件和位置的相關(guān)資料,需要的朋友可以參考下2017-01-01php采用file_get_contents代替使用curl實(shí)例
這篇文章主要介紹了php采用file_get_contents代替使用curl的方法,實(shí)例講述了file_get_contents模擬curl的post方法,對于服務(wù)器不支持curl的情況來說有一定的借鑒價(jià)值,需要的朋友可以參考下2014-11-11php如何調(diào)用webservice應(yīng)用介紹
Web Service也叫XML Web Service WebService是一種可以接收從Internet或者Intranet上的其它系統(tǒng)中傳遞過來的請求,輕量級的獨(dú)立的通訊技術(shù),接下來將詳細(xì)介紹php如何調(diào)用webservice,需要的朋友可以了解下2012-11-11發(fā)一個(gè)php簡單的偽原創(chuàng)程序,配合商城采集用的
在網(wǎng)上搜了一個(gè)偽原創(chuàng)的程序,下下來,結(jié)果太令人驚奇的。以前也在為如何將一段文字里的某些詞替換掉而苦惱,原來php有個(gè)strtr函數(shù).2010-10-10php實(shí)現(xiàn)的證件照換底色功能示例【人像摳圖/換背景圖】
這篇文章主要介紹了php實(shí)現(xiàn)的證件照換底色功能,結(jié)合實(shí)例形式分析了php實(shí)人像摳圖與換背景圖相關(guān)操作技巧,需要的朋友可以參考下2020-05-05