php能清除檔案內容,其實作方法為:先建立一個PHP範例檔案;然後透過「fopen($path, "r ");」開啟檔案;最後透過「if( flock($fh , LOCK_EX) ){...}”方式清除文件內容即可。
本文操作環境: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中文網其他相關文章!