Heim >Backend-Entwicklung >PHP-Problem >So löschen Sie die letzte Zeile einer Datei in PHP

So löschen Sie die letzte Zeile einer Datei in PHP

王林
王林Original
2020-08-12 13:44:302592Durchsuche

So löschen Sie die letzte Zeile einer Datei in PHP: Verwenden Sie zuerst die Funktion fopen(), um eine Datei zu öffnen, und verwenden Sie dann die Funktion fgets(), um eine Zeile Inhalt aus der geöffneten Datei zu lesen und sie in einem Array zu speichern; schließlich verwenden array_pop() Die Funktion löscht das letzte Element im Array.

So löschen Sie die letzte Zeile einer Datei in PHP

Verwandte Funktionen:

(Empfohlenes Tutorial: php-Grafik-Tutorial)

Die Funktion fopen() öffnet eine Datei oder URL.

Wenn fopen() fehlschlägt, wird FALSE mit einer Fehlermeldung zurückgegeben. Sie können die Fehlerausgabe ausblenden, indem Sie vor dem Funktionsnamen ein „@“ hinzufügen. Die Funktion

fgets() gibt eine Zeile aus einer geöffneten Datei zurück. Die Funktion

fgets() stoppt die Rückgabe einer neuen Zeile, wenn sie die angegebene Länge (Länge - 1) erreicht, auf ein Zeilenumbruchzeichen trifft oder das Ende der Datei (EOF) erreicht (je nachdem, was zuerst eintritt). Bei einem Fehler gibt die Funktion FALSE zurück. Die Funktion

array_pop() löscht das letzte Element im Array. Gibt den letzten Wert des Arrays zurück. Wenn das Array leer ist oder kein Array ist, wird NULL zurückgegeben.

(Lernvideo-Empfehlung: php-Video-Tutorial)

Code-Implementierung:

/**
 * 删除文件最后一行
 * @param $file_path 文件路径
 */
public function delLastLine($file_path) {
	$file = $fp = fopen($file_path, 'r') or die("Unable to open file!");
	while(!feof($file)) {
		$fp = fgets($file);
		if($fp) {
			$content[] = $fp;
		}
	}
	array_pop($content);
	fclose($file);
	//重新写入文件
	$file = fopen($file_path, 'w+');
	fwrite($file, implode("", $content));
	fclose($file);
}

Erklärung:

Nachdem meine Datei ausgelesen wurde, speichert die letzte Zeile des Arrays „false“, also geht if($fp) an die Array hineingeschrieben. Wenn die Datei Leerzeilen enthält, entfernen Sie bitte dieses Urteil und löschen Sie die letzte Zeile des Arrays zweimal. Diese Methode funktioniert nicht, wenn die Datei zu groß ist, um in den Speicher zu passen.

Das obige ist der detaillierte Inhalt vonSo löschen Sie die letzte Zeile 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