K1: Bestimmte Zeile aus einer Datei einlesen

Bestimmte Zeile aus einer Datei einlesen

Hi hab folgendes Problem. Ich habe eine sehr große Datei (mehrere GB). Alles was ich im Netz gefunden habe war, lies es mit file ein und hol dir dann die Zeile aus dem Array... Sprengt jeden memory_limit. Gibt es da ne bessere Lösung?

mfg
K1

  1. Bestimmte Zeile aus einer Datei einlesen

    Hi hab folgendes Problem. Ich habe eine sehr große Datei (mehrere GB). Alles was ich im Netz gefunden habe war, lies es mit file ein und hol dir dann die Zeile aus dem Array... Sprengt jeden memory_limit. Gibt es da ne bessere Lösung?

    Guck doch einfach mal in der PHP Doku... da hättest du auch folgendes gefunden:

    http://www.selfphp.de/funktionsreferenz/dateisystem_funktionen/fseek.php

    1. »» Bestimmte Zeile aus einer Datei einlesen
      »»
      »» Hi hab folgendes Problem. Ich habe eine sehr große Datei (mehrere GB). Alles was ich im Netz gefunden habe war, lies es mit file ein und hol dir dann die Zeile aus dem Array... Sprengt jeden memory_limit. Gibt es da ne bessere Lösung?

      Guck doch einfach mal in der PHP Doku... da hättest du auch folgendes gefunden:

      http://www.selfphp.de/funktionsreferenz/dateisystem_funktionen/fseek.php

      Aha, dann sag mir mal wie ich dann Zeile 5000 bekomme ohne vorher alle Bits bis zu dieser Zeile auszulesen damit ich den Pointer setzen kann...

      1. »» Guck doch einfach mal in der PHP Doku... da hättest du auch folgendes gefunden:
        »»
        »» http://www.selfphp.de/funktionsreferenz/dateisystem_funktionen/fseek.php

        Aha, dann sag mir mal wie ich dann Zeile 5000 bekomme ohne vorher alle Bits bis zu dieser Zeile auszulesen damit ich den Pointer setzen kann...

        Indem du deine Daten _vorher_ richtig organisierst und _alle_ Zeilen auf eine bestimmte Größe erweiterst, sodass du Wahlfreien Zugriff hast. Wenn das nicht geht (weil die Datei dann zu groß wird) kannst du nur die Datei von Anfang an bis zu dieser Stelle auslesen.
        Momentan liest du ja die ganze Datei ein, was viel zu lange dauert.

  2. echo $begrüßung;

    Ich habe eine sehr große Datei (mehrere GB). Alles was ich im Netz gefunden habe war, lies es mit file ein und hol dir dann die Zeile aus dem Array...

    Es gibt Dateifunktionen, mit denen man sich schrittweise durch eine Datei bewegen kann. fopen() und fclose() zum Öffnen und Schließen der Datei sowie fgets() zum zeilenweisen Lesen. Ein gezieltes Suchen ist bei Textdateien im Allgemeinen nicht möglich, da die Zeilen meist unterschiedlich lang sind und sich somit ein Einsprungpunkt nicht berechnen lässt, ohne vorher irgendwie die Zeilenlängen zu ermitteln.

    echo "$verabschiedung $name";