Heim  >  Artikel  >  Backend-Entwicklung  >  So löschen Sie eine beliebige Zeile in einer Datei in PHP

So löschen Sie eine beliebige Zeile in einer Datei in PHP

王林
王林Original
2020-11-10 10:48:052827Durchsuche

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 den Wert jedes Elements im Array zur zu speichernden Zeile hinzu gelöscht wird verarbeitet. Nicht einlesen; am Ende nur die Datei speichern.

So löschen Sie eine beliebige Zeile in einer Datei in PHP

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 löschenden Zeile entspricht verarbeitet, nicht lesen und schließlich die Datei speichern.

(Lernvideo-Empfehlung: Java-Video-Tutorial)

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 handelt sich nicht um zwei Zeilen, sondern immer noch nur um eine Zeile.

Wenn im Editor kein Wagenrücklaufzeichen vorhanden ist, kann es sich nur um eine Zeile handeln, unabhängig davon, wie viel Text vorhanden ist und ob das Format „Auto-Zeilenumbruch“ ist. Mit anderen Worten: Die Zeilenmarkierung ist das Wagenrücklaufzeichen (in PHP als „rn“ bezeichnet).

Ändern Sie das obige Programm. Wir können auch problemlos alle leeren Zeilen in der Datei löschen (Zeilen nur mit Leerzeichen + Wagenrückläufen oder nur Wagenrückläufen): Verwenden Sie Trim, um jedes Array beim Durchlaufen des Arrays zu erkennen und die gespeicherte Zeichenfolge zu lesen

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

Dieses Programm löscht alle leeren Zeilen in der Datei, aber wenn die letzte Zeile der Datei eine Leerzeile ist, entfernt es die Leerzeichen (falls vorhanden) und hinterlässt einen Wagenrücklauf (der als Ende der Datei behandelt wird). Dateizeiger-Flag).

Verwandte Empfehlungen: php-Training

Das obige ist der detaillierte Inhalt vonSo löschen Sie eine beliebige Zeile in einer Datei in PHP. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn