Nur die letzte Zeile auslesen

Loddar1

Erfahrenes Mitglied
Hallo Leute, ich mal wieder...
Ich möchte aus einer Datei nur die letzte zeile auslesen.
Die Einträge in der Datei werden mal mehr (meistens) mal weniger sein.
Egal wieviel Einträge, immer nur die letzte Zeile.
Zum Auslesen habe ich bisher das:
PHP:
<?php
echo'<p class="center">Es sind ';
$datei = fopen($dbfile, "r");
while($log = fgetcsv($datei, 500, "|")):
echo $log[0];
endwhile;
echo' Downloads vorhanden!</p>';
?>
Aber so werden alle Zeilen ausgelesen.
Ich habe keinen Zähler drin.
Kann mir trotzdem einer helfen wie ich den Zeiger auf den letzten Eintrag stelle?

Danke schonmal.
 
Du könntest mit der Funktion file() die komplette Datei in ein Array lesen. Anschließend kannst du auf den letzten Index springen, in dem du die count()-Funktion verwendest. Beispiel:

PHP:
$all_lines = file("einedatei.txt");
// Achung, ein Array beginnt bei 0, count() gibt aber die Anzahl der Elemente
// in einem Array zurück, also $anzahl_elemente - 1 = letztes Element
$last_line = $all_lines[ count($all_lines)-1 ];
 
Hi

Spring mit fseek zum letzten Zeichen.
Das mit fgetc einlesen.
Mit fseek zum vorletzten, einlesen.
Vorvorletzer, einlesen.
usw...bis du einen Zeilenumbruch findest.
Das ist dann der Anfang der letzten Zeile.

Gruß

edit: saftmeisters Lösung braucht mehr Speicher, ist aber einfacher.
 
Zurück