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