Daten in txt-Datei schreiben, nur andersherum

Robert Steichele

Erfahrenes Mitglied
Ich schreibe per PHP beim versenden eines Formulares diverse Daten in eine Log-Datei (siehe Code)

$log=@fopen("logs/replog.txt", "a");
$output=@fwrite($log, $date);
$output=@fwrite($log, " / ");
$output=@fwrite($log, $ip);
$output=@fwrite($log, "\n");
fclose($log);

Das Problem ist, dass jede neue Zeile unten angehängt wird. D.h. die aktuellste Zeile ist immer unten.
Gibt es eine Möglichkeit, die neue Zeile immer oben einzufügen?
 
Du könntest die Datei zuerst per file() in einen Array lesen.
Per array_unshift() hängst du die neue Zeile am Anfang dieses Arrays ein....
dann kannst du diesen Array anhand "\n" implode()'n und in die Datei schreiben.
 
Oder einfach den ganzen Inhalt auslesen und in einer Variable speichern, die Datei löschen, Datei neu erstellen, neuen Eintrag schreiben und dann die alten Einträge wieder eintragen.
Naja vielleicht etwas kompliziert.
Aber danke für den Denlanstoß, werds mal versuchen wie du vorgeschlagen hast.

Kann ich die Datei eigentlich Zeilenweise auslesen (zwecks Array) und irgendwie dabei die Überschrift + 2 Leerzeilen überspringen?
 
Robert Steichele hat gesagt.:
Kann ich die Datei eigentlich Zeilenweise auslesen (zwecks Array) und irgendwie dabei die Überschrift + 2 Leerzeilen überspringen?

Klar,... mit file() erhältst du einen Array.....jedes Element stellt dabei eine Zeile dar.
 
Zurück