Spezielle Textdatei mit PHP auslesen und speichern
pathfinder
- datenbank
- php
0 Felix Riesterer0 Rolf B
1 Robert B.
Hallo,
habe hier Daten in einer Textdatei (siehe unten), welche etwas merkwürdig mittels Leerzeichen und Punkten strukturiert sind. Würde diese zur Weiterverarbeitung gerne mittels PHP auslesen... aber irgendwie fehlt mir hierzu ein Lösungsansatz, wie man das möglichst Sinnvoll (beispielsweise in ein mehrdimensionales array) bewerkstelligen kann. Schließlich soll das am Ende ja ggf. wieder in dem selben Format als Textdatei gespeichert werden können. Eventuell kennt ja jemand diese Art der Datenspeicherung oder/und hat Idee wie man das mit mögl. wenig Aufwand geschickt ausgelesen und wieder gespeichert bekommt!?
VG
[datensatz]
version
.minor=2
session
.id=32
datensatz
.name=Muster
.orientierung=1
.uid=0x1
.adresse=0x1
.typ=A
.icon=list
.symbol=2
.xy=8
.xz=4
.max=50
.min=5
.funktion
..nr=0
..typ=100
..wert=1
.funktion
..nr=1
..typ=120
..wert=5
.funktion
..nr=2
..typ=141
.funktion
..nr=3
..typ=142
.funktion
..nr=4
.funktion
..nr=5
datensatz
.name=Beispiel
.uid=0x2005
.adresse=0x5
.typ=B
.sid=0x5
.icon=block
.symbol=5
.xy=6
.xz=5
.max=80
.min=10
.funktion
..nr=0
..typ=1
.funktion
..nr=1
..typ=40
.funktion
..nr=2
..typ=20
..wert=1
.funktion
..nr=3
..typ=18
.funktion
..nr=4
.funktion
..nr=5
..typ=142
datensatz
.name=Test
.orientierung=1
.uid=0x2006
.adresse=0x6
.typ=B
.sid=0x6
.icon=tab
.symbol=3
.xy=15
.xz=15
.max=255
.min=255
.funktion
..nr=0
..typ=1
.funktion
..nr=1
.funktion
..nr=2
..typ=200
.funktion
..nr=3
.funktion
..nr=5
..typ=18
..wert=99
.funktion
..nr=6
..typ=48
Lieber pathfinder,
woher hast Du diese Datei? Sie ähnelt dem .ini-Format. Keine Ahnung, ob Dir da parse_ini_file()
helfen kann.
Liebe Grüße
Felix Riesterer
Hallo Felix,
das dachte ich auch zuerst, aber dieses Punkt und Punktpunkt-Format ist doch abweichend. Das ist kein reines INI-Format. Ich habe sowas noch nie gesehen und mein schneller Versuch, etwas über "ini-files with dots" oder "hierarchical ini file" zu finden, führte nicht zum Ziel.
Es gibt ein hierarchisches Ini-Format, aber da wird vor den Punkten jeweils der Sektionsname wiederholt. PHP kennt das nicht. Und es versteht auch keine Zeilen, die nur einen Sektionsnamen enthalten, ohne Gleichheitszeichen.
Man muss es wohl selbst bauen. Aber das ist nicht trivial, und es wird durch die PHP-Technik des "copy on write" für Arrays auch nicht einfacher. Spontan herunterschreiben kann ich das nicht, da bräuchte ich sicherlich eine Stunde oder zwei für. Sag ich jetzt. 4 Stunden später bin ich vermutlich am Rande des Nervenzusammenbruchs und frickele den siebzehnten Sonderfall hinein 😉
pathfinder - hast Du sachdienliche Hinweise auf die Anwendung, die eine Ini-Datei in diesem Format erwartet?
Rolf
Moin,
ist das eventuell eine Baumstruktur, in der die Punkte Zweige darstellen? Mich erinnert das eine mögliche Darstellung von Hierarchien – wenn ich das umformatierte:
[datensatz] version minor=2 session id=32 datensatz name=Muster orientierung=1 uid=0x1 adresse=0x1 typ=A icon=list symbol=2 xy=8 xz=4 max=50 min=5 funktion nr=0 typ=100 wert=1 funktion nr=1 typ=120 wert=5 …
Viele Grüße
Robert