這篇文章主要介紹了php能不能清除文件內(nèi)容,具有一定借鑒價值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。
php,一個嵌套的縮寫名稱,是英文超級文本預(yù)處理語言(PHP:Hypertext Preprocessor)的縮寫。PHP 是一種 HTML 內(nèi)嵌式的語言,PHP與微軟的ASP頗有幾分相似,都是一種在服務(wù)器端執(zhí)行的嵌入HTML文檔的腳本語言,語言的風格有類似于C語言,現(xiàn)在被很多的網(wǎng)站編程人員廣泛的運用。
php能清除文件內(nèi)容,其實現(xiàn)方法是:首先創(chuàng)建一個PHP示例文件;然后通過“fopen($path, "r+");”打開文件;最后通過“if( flock($fh, LOCK_EX) ){...}”方式清除文件內(nèi)容即可。
本文操作環(huán)境:windows7系統(tǒng)、PHP7.1版,DELL G3電腦
具體問題:
php清空文件內(nèi)容?
請問在php中怎么清空一個文件的內(nèi)容,不用fopen($file, 'w+')的方式。
我的需求是這樣,要保證寫文件之后上次的內(nèi)容全部刪除,直接覆蓋寫的話只會覆蓋到我這次寫的內(nèi)容結(jié)束,如果舊內(nèi)容比新內(nèi)容長,那么會剩余,而且php程序要一天24小時一直運行的,還要保證運行效率,我試過fopen()的方法,結(jié)果發(fā)現(xiàn)在關(guān)閉和打開文件資源時候浪費了很多時間,我本機測試開啟文件鎖,每次又用fopen()方式清空文件的時候每秒鐘只能能執(zhí)行5000次,如果只是讀取和寫入,每秒鐘能夠執(zhí)行近20萬次,所以想咨詢下有沒有其他的方法來實現(xiàn)這個目的。
實現(xiàn)代碼如下:
$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能不能清除文件內(nèi)容”這篇文章對大家有幫助,同時也希望大家多多支持億速云,關(guān)注億速云行業(yè)資訊頻道,更多相關(guān)知識等著你來學習!
免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。