php-resource



Zurück   PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr > Entwicklung > PHP Developer Forum
 

Login

 
eingeloggt bleiben
star Jetzt registrieren   star Passwort vergessen
 

 

 


PHP Developer Forum Hier habt ihr die Möglichkeit, eure Skriptprobleme mit anderen Anwendern zu diskutieren. Seid so fair und beantwortet auch Fragen von anderen Anwendern. Dieses Forum ist sowohl für ANFÄNGER als auch für PHP-Profis! Fragen zu Laravel, YII oder anderen PHP-Frameworks.

Antwort
 
LinkBack Themen-Optionen Thema bewerten
  #1 (permalink)  
Alt 14-06-2007, 22:11
squirrelcgn
 Registrierter Benutzer
Links : Onlinestatus : squirrelcgn ist offline
Registriert seit: Sep 2005
Ort: koeln.nrw.de
Beiträge: 125
squirrelcgn ist zur Zeit noch ein unbeschriebenes Blatt
Standard 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
Mit Zitat antworten
  #2 (permalink)  
Alt 14-06-2007, 22:18
asp2php
 Banned
Links : Onlinestatus : asp2php ist offline
Registriert seit: Feb 2004
Beiträge: 11.745
asp2php ist zur Zeit noch ein unbeschriebenes Blatt
Standard

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, ...
Mit Zitat antworten
  #3 (permalink)  
Alt 14-06-2007, 22:18
penizillin
 PHP Guru
Links : Onlinestatus : penizillin ist offline
Registriert seit: Feb 2004
Beiträge: 10.166
penizillin ist zur Zeit noch ein unbeschriebenes Blatt
Standard

mit fgets müsste es gehen.

asp2php: file? bei der größe?
Mit Zitat antworten
  #4 (permalink)  
Alt 14-06-2007, 22:25
squirrelcgn
 Registrierter Benutzer
Links : Onlinestatus : squirrelcgn ist offline
Registriert seit: Sep 2005
Ort: koeln.nrw.de
Beiträge: 125
squirrelcgn ist zur Zeit noch ein unbeschriebenes Blatt
Standard

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?
Mit Zitat antworten
  #5 (permalink)  
Alt 14-06-2007, 22:28
penizillin
 PHP Guru
Links : Onlinestatus : penizillin ist offline
Registriert seit: Feb 2004
Beiträge: 10.166
penizillin ist zur Zeit noch ein unbeschriebenes Blatt
Standard

na das musst du schon selbst implementieren.
funktioniert im grunde genau so, wie ein gruppenwechsel.
Mit Zitat antworten
  #6 (permalink)  
Alt 14-06-2007, 22:29
asp2php
 Banned
Links : Onlinestatus : asp2php ist offline
Registriert seit: Feb 2004
Beiträge: 11.745
asp2php ist zur Zeit noch ein unbeschriebenes Blatt
Standard

mit fgets liest du eine Zeile ein, dann mit explode kannst du den Eintrag splitten, wo liegt das Problem?
Mit Zitat antworten
  #7 (permalink)  
Alt 14-06-2007, 22:52
squirrelcgn
 Registrierter Benutzer
Links : Onlinestatus : squirrelcgn ist offline
Registriert seit: Sep 2005
Ort: koeln.nrw.de
Beiträge: 125
squirrelcgn ist zur Zeit noch ein unbeschriebenes Blatt
Standard

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

Gruß,
squirrel
Mit Zitat antworten
  #8 (permalink)  
Alt 14-06-2007, 22:55
penizillin
 PHP Guru
Links : Onlinestatus : penizillin ist offline
Registriert seit: Feb 2004
Beiträge: 10.166
penizillin ist zur Zeit noch ein unbeschriebenes Blatt
Standard

teile deine freude doch mit der nachwelt!
Mit Zitat antworten
Antwort

Lesezeichen


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 

Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an


PHP News

ebiz-trader 7.5.0 mit PHP7 Unterstützung veröffentlicht
ebiz-trader 7.5.0 mit PHP7 Unterstützung veröffentlichtDie bekannte Marktplatzsoftware ebiz-trader ist in der Version 7.5.0 veröffentlicht worden.

28.05.2018 | Berni

Wissensbestand in Unternehmen
Wissensbestand in UnternehmenLebenslanges Lernen und Weiterbilden sichert Wissensbestand in Unternehmen

25.05.2018 | Berni


 

Aktuelle PHP Scripte

Top-Side Guestbook

Gästebuch auf Textbasis (kein MySQL nötig) mit Smilies, Ip Sperre (Zeit selbst einstellbar), Spamschutz, Captcha (Code-Eingabe), BB-Code, Hitcounter, Löschfunktion, Editierfunktion, Kommentarfunktion, Kürzung langer Wörter, Seiten- bzw. Blätterfunktion, V

22.10.2018 webmaster10 | Kategorie: PHP/ Gaestebuch
ebiz-trader 6.0 - Das professionelle PHP Marktplatz Script ansehen ebiz-trader 6.0 - Das professionelle PHP Marktplatz Script

Mit unserer Lösungen können Sie nahezu jeden B2B / B2C Marktplatz betreiben den Sie sich vorstellen können. Ganz egal ob Sie einen Automarktplatz, Immobilenportal oder einfach einen Anzeigenmarkt betreiben möchten. Mit ebiz-trader können Sie Ihre Anforder

11.10.2018 Berni | Kategorie: PHP/ Anzeigenmarkt
PHP Server Monitor

PHP Server Monitor ist ein Skript, das prüft, ob Ihre Websites und Server betriebsbereit sind.

11.09.2018 Berni | Kategorie: PHP/ Security
 Alle PHP Scripte anzeigen

Alle Zeitangaben in WEZ +2. Es ist jetzt 08:12 Uhr.