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中文網其他相關文章!