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 <, wenn Sie das Array durchlaufen und die gespeicherte Zeichenfolge lesen 🎜> Überprüfen Sie jedes Array-Elementtrim
for($i=0;$i<$total;$i++){ if(trim($tmp[$i])<>"") $savestr.=$tmp[$i]; }
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!