方法:1、用“file_put_contents(文件名,'數(shù)據(jù)',FILE_APPEND)”;2、用“fwrite(fopen(文件名,'a'),'數(shù)據(jù)')”,fopen()可以追加模式打開(kāi)文件,fwrite()可在打開(kāi)的文件中寫(xiě)入數(shù)據(jù)。
本教程操作環(huán)境:windows7系統(tǒng)、PHP7.1版、DELL G3電腦
php怎么實(shí)現(xiàn)文件寫(xiě)入不覆蓋
在php中,想要實(shí)現(xiàn)文件寫(xiě)入不覆蓋,可以通過(guò)在文件末尾追加數(shù)據(jù)來(lái)實(shí)現(xiàn)。
PHP支持兩種在文件末尾追加數(shù)據(jù)的方法:
-
使用file_put_contents()函數(shù)
-
使用fopen()和fwrite()函數(shù)
有一個(gè)名為“test.txt”的文本文件,里面的內(nèi)容為:
來(lái)看看怎么向文件寫(xiě)入數(shù)據(jù)(不覆蓋):
方法1:利用file_put_contents()函數(shù)追加數(shù)據(jù)
file_put_contents()函數(shù)可以將一個(gè)字符串寫(xiě)入到文件中,語(yǔ)法格式如下:
file_put_contents(string $filename, mixed $data[, int $flags = 0[, resource $context]])
參數(shù)說(shuō)明如下:
- $filename:要被寫(xiě)入數(shù)據(jù)的文件名;
- $data:要寫(xiě)入的數(shù)據(jù),可以是字符串、一維數(shù)組或者資源等類(lèi)型;
- $flags:可選參數(shù),它的值可以是以下幾種(可以使用
|
運(yùn)算符組合使用):- FILE_USE_INCLUDE_PATH:在 include 目錄里搜索 $filename。
- FILE_APPEND:如果文件 $filename 已經(jīng)存在,追加數(shù)據(jù)而不是覆蓋。
- LOCK_EX:在寫(xiě)入時(shí)獲得一個(gè)獨(dú)占鎖。
- $context:可選參數(shù),一個(gè) context 資源。
將file_put_contents()函數(shù)的第三個(gè)參數(shù)設(shè)置為“FILE_APPEND
”可追加數(shù)據(jù)而不是覆蓋。
示例:
<?php header("Content-Type: text/html;charset=utf-8"); //設(shè)置字符編碼 $file = "test.txt"; file_put_contents($file, '歡迎來(lái)到PHP中文網(wǎng)!33',FILE_APPEND); //寫(xiě)入內(nèi)容 readfile($file); //讀取并輸出文件全部?jī)?nèi)容 ?>
方法2:利用fopen()和fwrite()函數(shù)追加數(shù)據(jù)
<?php header("Content-Type: text/html;charset=utf-8"); //設(shè)置字符編碼 $file = "test.txt"; $handle = fopen($file, 'a'); //以追加寫(xiě)入的模式打開(kāi)文件 fwrite($handle, 'https://www.php.cn/'); //寫(xiě)入內(nèi)容 fclose($handle);//關(guān)閉文件 readfile($file); //讀取并輸出文件全部?jī)?nèi)容 ?>
關(guān)鍵代碼分析:
-
fopen($filename, $mode)
函數(shù)可以按照指定文件模式$mode
打開(kāi)一個(gè)文件。當(dāng)$mode
為a
或者a+
,設(shè)置在打開(kāi)文件時(shí),將文件指針指向文件末尾;這樣進(jìn)行寫(xiě)入操作時(shí),數(shù)據(jù)會(huì)被追加到已有數(shù)據(jù)的后面。 -
fwrite()
函數(shù)可以將一個(gè)字符串寫(xiě)入到打開(kāi)的文件中,因此fwrite($handle, 'https://www.php.cn/')
語(yǔ)句的作用就是:將字符串“https://www.php.cn/”寫(xiě)入到已經(jīng)打開(kāi)的“test.txt”中。 -
寫(xiě)入完成后,使用fclose()函數(shù)來(lái)關(guān)閉文件。如果想要獲取“test.txt”文件中的新內(nèi)容,就使用
readfile($file)
函數(shù)直接獲取。
推薦學(xué)習(xí):《PHP視頻教程》