datei vom ende zum anfang lesen

suche eine moeglichkeit in php von einer datei zuerst die letzte dann die zweitletzte, drittletzte....erste zeile zu lesen....

weiss da jemand wie ich bei
string fgets ( resource handle [, int length])
den "handle" verarbeiten muss/kann?
 
nimm die funktion file, die liefert dir gleich ein array mit den zeilen
Code:
$zeilen = file($dateiname); 
for ($i=count($zeilen)-1; $i>=0; $i--)
{
  $zeile = $zeilen[$i];
  ...
}
 
thx fuer deine idee...aber..

wenn das file 100MB gross ist, was dann????

brauche nicht das ganze file sondern nur bis zu einem letzten bestimmten ereignis
 
PHP:
$handle = fopen ("/tmp/inputfile.txt", "r");  // Datei öffnen
while (!feof($handle))   // So lange EOF (End of File) nicht erreicht ist
{
    $buffer = fgets($handle, 4096);   // schreib aktuelle Zeile in $buffer (max. 4096 
                                                           // Zeichen pro Zeile )
    echo $buffer;  // Zeile Ausgeben
}
fclose ($handle);   // Datei schliessen


Quelle:

http://www.php-center.de/de-html-manual/function.fgets.html

Ich würde den Link auch noch anschauen da dort die Funktion auch beschrieben ist.
Das Beispiel ist auch von da... ich habs bloss Kommentiert...

--Ano
 
@Anonym001: denke du hast mich bei meinem ersten posting nicht ganz verstanden....


mit
Original von soox
suche eine moeglichkeit in php von einer datei zuerst die letzte dann die zweitletzte, drittletzte....erste zeile zu lesen....

meinte ich, dass ich eine moeglichkeit suche den dateizeiger (bei deinem bsp "$handle) zu bearbeiten..somit haette ich dann die moeglichkeit das file von "eof" zum anfang zu lesen (also rueckwaerts)

dein bsp macht genau das gegenteil von dem was ich will.....
 
Oh sorry hatte ich übersehen...

PHP:
$handle = fopen ("/tmp/inputfile.txt", "r");  // Datei öffnen

fseek ($handle ,0,SEEK_END); // Ans Ende der Datei Springen...

while (fgetc($handle)!='\n')   // Bis zum nächsten Zeilenumbruch gehen...
{
fseek($handle,-1,SEEK_CUR); // Ein zeichen zurück...
}

//Jetzt steht der Zeiger auf dem Ende der 2.letzten Zeile... also ein Zeichen vor
// Dann sind wir am Anfang der Nächsten Zeile....

fseek($handle,1,SEEK_CUR); // Ein zeichen vor...

// und jetzt die Zeile einlesen


    $data= fgets($handle, 4096);   

fclose ($handle);   // Datei schliessen


Uff...
 
Zurück
Oben