首頁 >後端開發 >PHP問題 >php能清除文件內容嗎

php能清除文件內容嗎

藏色散人
藏色散人原創
2021-05-08 09:04:272227瀏覽

php能清除檔案內容,其實作方法為:先建立一個PHP範例檔案;然後透過「fopen($path, "r ");」開啟檔案;最後透過「if( flock($fh , LOCK_EX) ){...}”方式清除文件內容即可。

php能清除文件內容嗎

本文操作環境:windows7系統、PHP7.1版,DELL G3電腦

特定問題:

php清空文件內容?

請問在php中怎麼清空一個檔案的內容,不用fopen($file, 'w ')的方式。

我的需求是這樣,要保證寫文件之後上次的內容全部刪除,直接覆蓋寫的話只會覆蓋到我這次寫的內容結束,如果舊內容比新內容長,那麼會剩餘,而且php程式要一天24小時一直運行的,還要保證運行效率,我試過fopen()的方法,結果發現在關閉和打開文件資源時候浪費了很多時間,我本機測試開啟文件鎖,每次又用fopen()方式清空檔案的時候每秒鐘只能能執行5000次,如果只是讀取和寫入,每秒鐘能夠執行近20萬次,所以想諮詢下有沒有其他的方法來實現這個目的。

實作程式碼如下:

$fh = fopen($path, "r+");
if( flock($fh, LOCK_EX) ){//加写锁
$old_content=json_decode(fread($fh,filesize($path)),true);
$old_content=$old_content.$new_content;
ftruncate($fh,0); // 将文件截断到给定的长度
rewind($fh); // 倒回文件指针的位置
fwrite($fh,json_encode($old_content));
// @chmod($path,0644);
flock($fh, LOCK_UN); //解锁
}
fclose($fh);

推薦學習:《PHP影片教學

以上是php能清除文件內容嗎的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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