6 aufeinanderfolgende Zeilen aus Textdatei auslesen

chaosmkr

Grünschnabel
Hallo!

Ich hab schon ein bisschen hier im Forum rumgestöbert, aber noch nichts passendes gefunden. Ich suche nämlich nach einer Lösung für mein Problem, welches darin besteht, dass ich aus Textdateien, die durch ein Programm erzeugt wird immer 6 aufeinanderfolgende Zeilen auslesen muss, da die benötigten Infos zusammengehören. Wären die Textdateien konstant, dann wäre es kein Problem (hatte das schon statisch, da ich anfangs dachte, daß die Infos immer z.B. in den Zeilen 24, 37 usw. stehen). Da es jedoch nicht so ist, muss ich die Daten jetzt variabel auslesen können.

Die Dateien haben ungefähr so ein Format:


BENENNUNG // Halter Arm // TYP: Zeichenkette
QUELLE: Benutzerdefiniert
ZUGRIFF: Voll
AUSGEWIESEN: JA
BESCHREIBUNG:

BEZEICHNUNG // // L01 25A 181 TYP: Zeichenkette
QUELLE: Benutzerdefiniert
ZUGRIFF: Voll
AUSGEWIESEN: JA
BESCHREIBUNG:

MATERIAL // 1.4301 // TYP: Zeichenkette
QUELLE: Benutzerdefiniert
ZUGRIFF: Voll
AUSGEWIESEN: JA
BESCHREIBUNG:

Hier würden mich z.B. nur alles was hinter Benennung und hinter Material steht interessieren. Daß die Spalten dazwischen nur mit Leerzeichen und nicht mit Tabs in der Datei stehen kann man ja mit substr() hinbekommen... aber wie kann ich nur die bestimmten Zeilen rausbekommen ? (Zur Zeit teste ich das, indem ich die testdatei mit file() einlese...)
Wäre nett wenn mir jemand zumindest einen Denkanstoß geben könnte!

Edit: ich sehe gerade, daß die ganze formatierung i.A. ist... die // markieren jetzt ca. 20 leerspalten.
 
Zuletzt bearbeitet:
Arbeite doch mit Regulären Ausdrücken, etwa:
PHP:
if( preg_match('/(?<=MATERIAL).*/m', $line, $match) ) {
	print_r($match);
}
 
danke für den tipp, hab bei php.net mal ein bisschen weiter nachgelesen und ausprobiert... aber jetzt muss ich mein beim einlesen erstelltes array (hab die textdatei über file() eingelesen) in einen string umwandeln. wenn ich mich da an php.net halte und das mit implode() mache (und halt als Trennzeichen nichts angebe (nur "")), dann kommt trotzdem weiterhin die meldung, daß preg_match string erwartet aber ein array bekommt. auch mit readfile kommt dasselbe...
falls das ganze zu trivial erscheint nehmts mir bitte nicht übel, hab erst vor ein paar tagen das erste mal was mit php gemacht.

Vielleicht ist mein Ansatz ja auch von Grund auf falsch. Denn die Informationen die ich benötige sollen auch gleich danach in ne Mysql DB rein. Und ich als denke halt, es ist am einfachsten, wenn man die Datei ausliest, die wichtigen informationen in ne neue Textdatei kopiert, leerzeichen durch "Tab" ersetzt und dann die so erstellte csv datei in die datenbank einliest... wenns leichter geht, gebt mir bitte mal einen denkanstoß :)
 
Zurück