首頁 >後端開發 >PHP問題 >php檔案操作之如何清空文件重新新增數據

php檔案操作之如何清空文件重新新增數據

青灯夜游
青灯夜游原創
2021-08-05 16:51:094984瀏覽

在上一篇文章中我們介紹了一次讀取檔案全部資料的方法,有興趣的可以點擊連結查閱《php檔案操作之如何一次取得檔案的全部資料》。文件讀取操作了解了不少,下面我們來了解一下文件寫入操作。

如標題所說的,今天的主題是介紹覆蓋寫入(將檔案原有內容清空,然後重新加入資料)。下面我們會透過程式碼範例來給大家詳細介紹的。

還是之前的例子,有一個名為「test.txt」的文字文件,裡面的內容為:

php檔案操作之如何清空文件重新新增數據

想要將「test. txt」檔案的內容改為:

HELLO PHP!

我們來看看實作程式碼:

<?php
header("Content-Type: text/html;charset=utf-8");    //设置字符编码
$file = "test.txt";
$handle = fopen($file, &#39;w&#39;);                 //打开文件
fwrite($handle, &#39;HELLO PHP!&#39;);    //写入内容
fclose($handle);//关闭文件
?>

寫入內容後,我們讀取文件,看看是讓進行覆蓋寫入

readfile($file);   //读取并输出文件全部内容

看看輸出結果為:

php檔案操作之如何清空文件重新新增數據

#重新開啟「test.txt」文件,看看內容:

php檔案操作之如何清空文件重新新增數據

#寫入成功!我們來看看關鍵語句:

fopen($file, 'w')語句:fopen()函數可以按照指定檔案模式$mode開啟一個文件;當$modeww 時,會在開啟檔案的同時,清空檔案的內容。

fwrite($handle, 'HELLO PHP!')語句:將字串「HELLO PHP!」寫入到開啟的檔案中。

除了利用fopen和fwrite()函數來覆寫寫入外,我們還可以直接使用file_put_contents()函數來將檔案原有內容清空並重新新增資料。

看看下面的範例:

<?php
header("Content-Type: text/html;charset=utf-8");    //设置字符编码
$file = "test.txt";
file_put_contents($file, &#39;欢迎来到PHP中文网!&#39;);    //写入内容
readfile($file);   //读取并输出文件全部内容
?>

輸出結果為:

php檔案操作之如何清空文件重新新增數據

#重新開啟「test.txt」文件,看看內容:

php檔案操作之如何清空文件重新新增數據

我們來了解file_put_contents()函數:

file_put_contents($filename,$data,$mode,$context)函數可以把一個字串寫入檔案中,接受兩個必要參數$filename(要開啟的檔案)和$data(要插入的內容,可以是字串、一維數組或資源等類型),2個可省略的參數$mode$context(檔案句柄的環境)。

其中,$mode參數用於如何開啟/寫入檔案(即檔案模式),有三個值:

  • FILE_USE_INCLUDE_PATH:預設值,用於覆蓋原有資料。

  • FILE_APPEND:如果檔案 $filename 已經存在,請追加資料而不是覆寫。

  • LOCK_EX:在寫入時取得一個獨佔鎖定。

<?php
header("Content-Type: text/html;charset=utf-8");    //设置字符编码
$file = "test.txt";
file_put_contents($file, &#39;欢迎来到PHP中文网!33&#39;,FILE_APPEND|LOCK_EX);    //写入内容
readfile($file);   //读取并输出文件全部内容
?>

重新開啟「test.txt」文件,看看內容:

php檔案操作之如何清空文件重新新增數據

可以看出,我們在文件的末尾新增了一段新數據!因此file_put_contents()函數不只可以用來覆蓋寫入,還可以追加寫入

好了就說到這裡了,有其他想知道的,可以點選這個喔。 → →PHP檔案基礎操作

#推薦:PHP面試題大匯總(收藏)》《php影片教學

以上是php檔案操作之如何清空文件重新新增數據的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn