phpbar.de logo

Mailinglisten-Archive

[php] Letzte Zeile aus einer Datei löschen

[php] Letzte Zeile aus einer Datei löschen

Lutz Zetzsche Lutz.Zetzsche at sea-rescue.de
Son Nov 27 10:08:27 CET 2005


Hi Markus,

Am Sonntag, 27. November 2005 09:43 schrieb Weissbierwaldi:
> Wenn das so kompliziert ist dann mache ich ne Kopie vonder Datei bei
> mir heist sie proxychain.conf und die Kopie heist denn z.B.
> proxychain.conf.back.
> Wenn sich jetzt die letzte Zeile ändern soll lösche ich die
> proxychain.conf, kopiere die Datei proxychain.conf.back nach
> proxychain.conf und hänge die letzte Zeile an.

Das wäre auch eine Möglichkeit. Bei einer Datei von der Größe der 
proxychain.conf sicherlich auch kein Problem, aber bei größeren Dateien 
vielleicht doch.

Meine Idee wäre, sich irgendwo die Länge der letzten Zeile zu merken. Wenn Du 
die nämlich kennst, kannst Du direkt mit ftruncate() (und fwrite()) 
ansetzen. ;-) Das sollte aus meiner Sicht der performanteste Ansatz sein, 
wenn man es allgemein betrachtet.


> Ich denke mal so ist das am einfachsten da es ja leider keine Funktion
> gibt den Dateizeiger in bestimmte Zeilen zu verschieben.

Ich habe jedenfalls keine gefunden. fseek() etc. setzen den Zeiger immer nach 
Bytes. Die einzigen Funktionen, die für Dich zeilenweise arbeiten, sind die 
fget*()-Funktionen (und file()). Die gucken dann halt gezielt nach den 
Zeilenumbruchszeichen in der Datei.


Viele Grüße
Lutz

php::bar PHP Wiki   -   Listenarchive