(PHP) > Textdatei auslesen der letzten 50 Zeilen



  • Hallo! 🙂
    Mein neuer Chat läuft jetzt mit Textdateien.
    Wie kann ich es bewerkstelligen, dass nur die letzten 50 ausgelesen werden?

    while (!feof($fd)) {
        $message = fgets($fd, 4096);
    
        echo $message."<br>";
    }
    

    Läuft bisher sehr simpel. 🙂

    MfG MAV



  • Die Datei öffnen und bei den Parameter wo du die öffnest kannst du den Zeiger direkt ans Ende der Datei setzen und dann gehste einfach 50 Zeilen zurück.. 🙂



  • IMHO geht das nur, indem man die Datei zeilenweise durchliest und in einem Buffer die letzten 50 Zeilen speichert. "50 Zeilen zurückgehen" ist IMHO nicht möglich... Ich lass mich aber gerne vom Gegenteil überzeugen.



  • Es müßte gehen, ich habe es nicht probiert...

    Da php sehr ähnlich von C++ ist, müßte es theoretisch gehen.
    Da man es in C++ kann...
    Ich hatte diese Lösung in C++ programmiert.

    Ahja, mir fällt ne Lösung ein.
    Tip, du kannst in php so vor gehen und es müßte klappen...
    Wie ich sagte den dateizeiger direkt ans Ende setzen und dann nimmst du den Dateizeiger 50 zeilen zurürck... Wie der Befehl dafür ist, weiß ich jetzt aus dem Kopf nicht, aber das ist bei php.net dokumentiert. Zwar noicht das Beispiel was er will, aber das mit den Datei-Zeiger setzen...
    Und du mußt guckn ob die Datei wirklich mindestens 50 Zeilen hat, aber das ist glaube ich nicht wichtig. wenn du 5 Zeilen hast geht er nicht in -45, sonder bleibt in der ersten Zeile stehen...



  • Hallo,
    ich würde es so machen...

    <?
    $array = file($fd);
    $zaehler=count($array)-50;
    for($zaehler;$zaehler<count($array);$x++)
      echo $array[$zaehler];
    ?>
    

    weiß nicht obs funktioniert. War nur ein Gedanke von mir...


Anmelden zum Antworten