dedlfix: Letzte Zeile einer Datei löschen

Beitrag lesen

echo $begrüßung;

ich möchte ein PHP Skript bauen, das wenn ic hes aufrufe die letzte Zeile einer Datei löscht.

Wenn die Datei nicht zu groß ist:
Einlesen in einen String mittels file_get_contents(), ermittle die Position des letzten Zeilenumbruchs mit strrpos(), und schneide dann mit ftruncate() (plus fopen() und fclose()) ab.

Oder: Einlesen mittels file(), letztes Array-Element löschen, implode()ieren und schreiben.

Wenn die Datei sehr groß ist und du sie nicht in Gänze dem Arbeitsspeicher zumuten möchtest:
Lese-Datei(1) öffnen mit fopen(), zweite Datei(2) zum Schreiben öffnen, solange das Ende von 1 noch nicht erreicht ist: wenn eine gemerkte Zeile vorhanden ist, diese nach 2 schreiben, Zeile aus 1 mittels fgets() lesen und merken. 1 und 2 schließen, 1 löschen und 2 umbenennen.

Gegebenenfalls müssen Zweitzugriffe während des Änderungsprozesses verhindert werden. flock() hilft dabei.

echo "$verabschiedung $name";