Einlesen/Parsen von richtig großen Textfiles

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Einlesen/Parsen von richtig großen Textfiles

    Hallo zusammen,

    ich habe folgendes vor: hab eine ziemlich große Textdatei (1 GB) und diese stellt im Prinzip eine Datenbank dar. Ich möchte die strukturiert gespeicherten Daten auslesen und dann als Einträge in eine MySQL-DB speichern.

    So, jetzt etwas konkreter. Die Datei sieht (vereinfacht) so aus:

    ID_NR - 0123456789
    TYPE - Battery XY
    VENDOR - Power Inc.
    INFO - Etwas Text... etwas Text... etwas Text

    ID_NR - 5678912340
    TYPE - Akku YX
    VENDOR - Power Inc.
    INFO - Etwas Text... etwas Text... etwas Text...

    ID_NR - 5678912340
    ...


    Man kann also sagen, der "Dreh- und Angelpunkt" ist das Attribut "ID_NR". Immer wenn eine neue "ID_NR" gefunden wird, beginnt ein neuer Eintrag. Das ist denke ich schon mal sehr wichtig.

    Meine Frage lautet nun:
    Wie kann ich eine Textdatei im obigen Format Stück-für-Stück (also Eintrag für Eintrag, "ID_NR") in PHP einlesen? Wenn ich dann die einzelnen Stücke habe, weiß ich, wie es weiter geht. ;-) Also das eigentliche Parsen der einzelnen Einträge habe ich schon hinbekommen.

    Ich hoffe, ich hab mein Problem hinreichend erläutert. Es wäre genial, wenn mir der ein oder andere helfen könnte.

    Vielen Dank im Voraus und Grüße,
    squirrel

  • #2
    Schaue dir file an. Eintragen in die DB am besten mit REPLACE anstatt INSERT, somit vermeidest du Fehlermeldung beim Dupplikat oder Doppeleinträge je nach Tabellendefinition

    Falls Datei zu groß dann fopen, fgets, ...

    Kommentar


    • #3
      mit fgets müsste es gehen.

      asp2php: file? bei der größe?

      Kommentar


      • #4
        Vielen Dank euch beiden.

        @asp2php: die Funktion file speichert ja "einen File in einem Array", wo ich irgendwie Probleme sehe, bei einer filesize von ca. 1GB. Nicht, dass PHP mir dann den ganzen Kram in den RAM lädt... ;-) Oder verstehe ich was falsch? Auch danke für den Tipp mit REPLACE!

        @pennizilin: die Manual-Seite zu fgets hab ich schon durch. Der einzig mir brauchbare Artikel scheint dieser hier: "05-Dec-2005 09:17" (auf der fgets-php-Seite). Dort wird erklärt und gelistet, wie man einen Textfile "chunkweise", also eine festgelegte Größe (z.B. 4 MB), zerhackt. Aber ich würde gerne bei einem bestimmten Keyword einen "Schnitt" machen. Hast du da eine Idee wie ich vorgehen kann?

        Kommentar


        • #5
          na das musst du schon selbst implementieren.
          funktioniert im grunde genau so, wie ein gruppenwechsel.

          Kommentar


          • #6
            mit fgets liest du eine Zeile ein, dann mit explode kannst du den Eintrag splitten, wo liegt das Problem?

            Kommentar


            • #7
              Leute, ich hab's! :-) Vielen lieben Dank euch beiden nochmals!

              Gruß,
              squirrel

              Kommentar


              • #8
                teile deine freude doch mit der nachwelt!

                Kommentar

                Lädt...
                X