首頁  >  文章  >  後端開發  >  php怎麼刪除檔案中的任一行

php怎麼刪除檔案中的任一行

王林
王林原創
2020-11-10 10:48:052809瀏覽

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

php怎麼刪除檔案中的任一行

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

(學習影片推薦:java影片教學

實作方法:

$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