首頁 >後端開發 >PHP問題 >php如何刪除檔案中任一行?

php如何刪除檔案中任一行?

coldplay.xixi
coldplay.xixi原創
2020-07-10 10:49:452687瀏覽

php刪除檔案中任一行的方法:先將檔案逐行讀入陣列;然後遍歷陣列並將陣列各元素的值加到要儲存的字串中;接著當處理到對應於要刪除的行的陣列元素時不讀入它;最後儲存檔案即可。

php如何刪除檔案中任一行?

php刪除檔案中任何一行的方法:

##實作想法:

    將檔案逐行讀入數組,然後遍歷數組並將數組各元素的值添加到要保存的字串中,當處理到對應於要刪除的行的數組元素時不讀入它,最後保存文件。

實作方法:

$num=2; //要删除的行序号 
$fp=file("test.txt"); $total=count($fp); //取得文件总行数 
foreach ($fp as $line) { //按行分解内容并 
$tmp[]=$line; //逐行写入数组 } 
for($i=0;$i<$total;$i++){ 
//若$i的值不等于要删除的行序号 if($i<>$num) 
$savestr.=$tmp[$i]; } //写入文件 
$fp=fopen("test.txt","w"); 
fwrite($fp,$savestr); 
fclose($fp);

    執行上述PHP程序,它將刪除

test.txt檔案的第三行。文件的行序號從0算起,而不是我們通常所理解的從1算起,這與數組元素的下標序號是一樣的情形。

    有一個問題要弄清楚,就是所謂的「行」的概念。讓我們用記事本寫一個文件,一行結束後我們打一個回車或者不打,保存該文件後該文件就有了一行;如果我們打完一行後回車再打一行,保存後文件就有兩行。

在記事本里,當我們設定格式為“自動換行”,一行文字寫到最右端時會自動折行,但那不是兩行,它依然只是一行。在記事本里,不論有多少文字,也不論格式是否為“自動換行”,如果一直沒有回車符,那麼就只能是一行。換句話說,行的標誌是回車符(PHP記作“"\r\n"”)。

    修改以上程序,我們也可以輕易地刪除檔案裡所有空的行(只有空格回車符或只有回車符的行):在遍歷數組並讀入保存字符串時用

trim偵測每個陣列元素

for($i=0;$i<$total;$i++){ if(trim($tmp[$i])<>"") $savestr.=$tmp[$i]; }

    這個程式將刪除檔案中的所有空白行,但假若檔案的最後一行為空白行,則會清除其空格符(如果有的話)然後保留一個回車符(它被當作文件末尾的指針標誌)。

相關學習推薦:

PHP程式設計從入門到精通

#

以上是php如何刪除檔案中任一行?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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