在之前的文章中給大家?guī)砹恕禤HP中怎樣讀取文件?(分享總結(jié))》,里面詳細(xì)的介紹了在我們應(yīng)該怎樣去讀取文件,本篇文章繼續(xù)給大家?guī)?,我們?yīng)該怎樣去創(chuàng)建和修改文件,希望對(duì)大家有幫助!
讀取文件想必已經(jīng)難不到大家,那么接下來我們來看一看,我們應(yīng)該怎樣修改文件或者說創(chuàng)建文件并且修改它。
file_put_contents寫入文件
首先,我們先來學(xué)習(xí)一種寫入方式,file_put_contents()
,它的語法格式如下:
int file_put_contents ( string $文件路徑, string $寫入數(shù)據(jù)])
它能夠向指定的文件寫入一個(gè)字符串,如果不存在這個(gè)文件,file_put_contents會(huì)創(chuàng)建一個(gè)文件,返回的是寫入字節(jié)的長度。同時(shí)需要知道的是,如果這個(gè)指定的文件中存在內(nèi)容的話,它會(huì)覆蓋掉之前的內(nèi)容。
示例如下:
<?php $a = "好好學(xué)習(xí),天天向上;福如東海,壽比南山"; $b = file_put_contents('test.txt', $a); if($b){ echo '寫入成功,我們讀取看看結(jié)果試試:'; echo file_get_contents('test.txt'); }else{ echo '寫入失敗或者沒有權(quán)限,注意檢查'; } ?>
輸出結(jié)果:
在我的目錄中本來不存在test.txt,通過函數(shù)之后,我的目錄中出現(xiàn)了test.txt,并且內(nèi)容如下:
由上述示例我們可以看出,寫入一個(gè)文件還是不難的,按照規(guī)定的函數(shù)格式,指定的文件就可以被寫入。
fwrite
配合f
open
進(jìn)行寫入操作
fwrite() 函數(shù)用于向文件寫入字符串,成功返回寫入的字符數(shù),否則返回 FALSE 。
首先先說fwrite的語法結(jié)構(gòu)如下:
int fwrite ( resource $文件資源變量, string $寫入的字符串 [, int 長度])
接下來我們用fwrite加上fopen中的w,寫入模式來進(jìn)行文件寫入。其中的特點(diǎn),我們在前一篇文章中也說了,就是寫入方式打開,將文件指針指向文件頭并將文件大小截為零。如果文件不存在則嘗試創(chuàng)建。
<?php $a = 'test.txt'; $b= fopen($a, "w"); $c = fwrite($b, '好好學(xué)習(xí),天天向上;福如東海,壽比南山'); fclose($b); print $c .'字節(jié)被寫入了n'; ?>
輸出結(jié)果:
在目錄中的test.txt文件內(nèi)容如下:
由上述示例我們可以得到以下總結(jié):
-
不論有沒有新建都會(huì)打開文件重新寫入
-
原有的文件內(nèi)容會(huì)被覆蓋掉
-
文件不存在會(huì)創(chuàng)建
接下來我們再來對(duì)比一下,幾個(gè)模式的不同:
-
r
—只能讀不能使用fwrite寫 -
r+
—可操作讀、寫 -
w
—只可以寫功能 -
w+
—即可讀又可以寫
舉個(gè)例子:
還是上述示例,把其中的w換成r,示例如下:
<?php $a = 'test.txt'; $b= fopen($a, "r"); $c = fwrite($b, '好好學(xué)習(xí),天天向上;'); fclose($b); print $c .'字節(jié)被寫入了n'; ?>
輸出結(jié)果:
通過示例我們發(fā)現(xiàn),r模式下寫入是不成功的。
a模式和w模式的不同
還是通過上面的代碼,把r換成a試一下,示例如下:
<?php $a = 'test.txt'; $b= fopen($a, "a"); $c = fwrite($b, '好好學(xué)習(xí),天天向上;'); fclose($b); print $c .'字節(jié)被寫入了n'; ?>
輸出結(jié)果:
test.txt文本內(nèi)容如下:
通過上述示例發(fā)現(xiàn),a模式下,每刷新一次,就會(huì)多寫入一次。每次寫入都會(huì)在文件尾端追加內(nèi)容。
推薦學(xué)習(xí):《PHP視頻教程》