Heim > Artikel > Backend-Entwicklung > Wie lösche ich eine beliebige Zeile in einer Datei in PHP?
So löschen Sie eine beliebige Zeile in einer Datei in PHP: Lesen Sie zuerst die Datei Zeile für Zeile ein, durchlaufen Sie dann das Array und fügen Sie dann den Wert jedes Elements des Arrays zur zu speichernden Zeichenfolge hinzu Beim Verarbeiten des entsprechenden Array-Elements wird die gelöschte Zeile nicht eingelesen; die Datei wird nur am Ende gespeichert.
So löschen Sie eine beliebige Zeile in der Datei in PHP:
Implementierungsideen:
Lesen Sie die Datei Zeile für Zeile in das Array ein, durchlaufen Sie dann das Array und fügen Sie den Wert jedes Elements des Arrays zur zu speichernden Zeichenfolge hinzu, wenn das Array-Element der zu speichernden Zeile entspricht Gelöscht wird verarbeitet, es wird nicht gelesen, schließlich wird die Datei gespeichert.
Implementierungsmethode:
$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);
Führen Sie das obige PHP-Programm aus, es löscht die dritte Zeile der test.txt
-Datei. Die Zeilenfolgenummer der Datei beginnt bei 0 und nicht bei 1, wie wir es normalerweise verstehen, was mit der tiefgestellten Nummer des Array-Elements identisch ist.
Es gibt ein Problem, das geklärt werden muss, nämlich das sogenannte Konzept der „Aktion“. Lassen Sie uns Notepad verwenden, um eine Datei zu schreiben. Drücken Sie die Eingabetaste oder geben Sie nichts ein. Nach dem Speichern der Datei enthält die Datei eine Zeile und dann die Eingabetaste. Die Datei enthält nach dem Speichern zwei Zeilen.
Wenn wir im Notepad das Format auf „Automatischer Zeilenumbruch“ einstellen, wird eine Textzeile automatisch umgebrochen, wenn sie das rechte Ende erreicht, aber es sind nicht zwei Zeilen, sondern immer noch nur eine Zeile. Unabhängig davon, wie viel Text vorhanden ist und ob das Format „Auto-Umbruch“ ist oder nicht, kann es sich im Notepad nur um eine Zeile handeln, wenn kein Wagenrücklaufzeichen vorhanden ist. Mit anderen Worten: Die Zeilenmarkierung ist das Wagenrücklaufzeichen (in PHP als „rn“ bezeichnet).
Durch Modifizieren des obigen Programms können wir auch ganz einfach alle leeren Zeilen in der Datei löschen (Zeilen nur mit Leerzeichen + Wagenrücklauf oder nur Wagenrücklauf): Verwenden Sie Überprüfen Sie jedes Array-Elementtrim
for($i=0;$i<$total;$i++){ if(trim($tmp[$i])<>"") $savestr.=$tmp[$i]; }Dieses Programm löscht alle leeren Zeilen in der Datei. Wenn die letzte Zeile der Datei jedoch eine leere Zeile ist, werden die Leerzeichen (falls vorhanden) gelöscht und ein Wagen beibehalten Rückgabezeichen (das als Zeiger auf das Ende der Datei verwendet wird).
Verwandte Lernempfehlungen:
Das obige ist der detaillierte Inhalt vonWie lösche ich eine beliebige Zeile in einer Datei in PHP?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!