ruben: Mit PHP User-Listen parsen -> Datenbank

Beitrag lesen

Hallo!

"Hier kannst du selbst bestimmen, wie die Ausgabe auszusehen hat.
Je nach Bedarf kannst du mehr oder weniger Informationen einschließen, Reihenfolge und Beschreibung ändern. Folgende Bausteine kannst du benutzen, um dem Parser zu signalisieren, wo was eingefügt werden soll: {Sprache},{Wortfeld},{Bekannt},{Fremd}"
Also {Sprache};{Bekannt}={Fremd} -> français;die Katze≠Kater;la chatte

So mache ich es möglich, Datenbankinformationen in benutzerdefinierten Formaten auszugeben/zu exportieren.

Nun mache ich mir darüber Gedanken, wie ich analog dazu benutzerdefinierte Formate beim Import zulassen kann.
Also, dass beispielsweise der Benutzer beim Import angibt
{Sprache};{Bekannt}={Fremd}
und français;die Katze≠Kater;la chatte damit korrekt in die Datenbank eingelesen wird.

Ich mache mir gerade theoretische Überlegungen dazu, und gucke, ob ich vielleicht eine existente Klasse adaptieren könnte.

Probleme: Separator-Zeichensequenzen escaped zulassen? Neue Zeilen müssen in gewissen Listen vorkommen dürfen, dann muss es aber auch einen zusätzlichen Indikator für das Ende einer "Datenzeile" geben.

Außerdem ist das ganze überhaupt recht schwierig und ich denke, im Endeffekt müsste ich anhand eines Strings wie {Sprache};{Bekannt}={Fremd}eine Reg.Exp generieren, ich weiß nicht mal, ob ich das schaffen würde, da das logische-Anforderungen-mäßig vermutlich übersteigt, was ich sonst so mache.

Des Weiteren weiß ich nicht, inwieweit so eine Funktionalität überhaupt benötigt wird. Für den Ottonormal-Nutzer sollte es ziemlich einfach sein, eine Liste mittels Suchen/Ersetzen in das gewünschte Format zu bringen (allerdings kann er die Reihenfolge nicht so einfach verändern).

Dazu kommt noch die Abwägung, welches Format ich als Default benutzen soll.
Optimal sollte es menschenlesbar sein, optionale Angaben ermöglichen, möglichst wenig Escapen erfordern und New-Lines zulassen.
Bisher habe ich
"Sprache"; "Wortfeld"; "Bekannt"; "Fremd"; "Hinweis"; "Phase"; "Fehler"; "Zeit"; "Entstehung";""
und
Bekannt; Fremd; Hinweis

Das zweite kann man lesen, das erste kann New-Lines und diese ganzen optionalen Daten.

Nun kam ich neulich auf den Trichter, dass man das vielleicht mit Tabellen ganz gut machen könnte.
Beim Kopieren einer Tabelle, macht der Browser nämlich automatisch \t zwischen die Zellen, und \t kommt in Benutzereingeben (über Textareas und Inputs) so gut wie nie vor und kann dann leicht einfach nur ein paar Leerzeichen ersetzt werden.
Dann hätte ich zwar noch keinen Newline-Indikator, aber ich dachte, wenn ich einfach erst alle doppelten Tabs ersetze, dann an den Tabs explode und dann die Anzahl aller Teile durch die Anzahl der Teile pro Zeile teile, dann kommm ich schon dran. Diese Methode hat dann als einzigen Nachteil, dass keine Angaben wegfallen dürfen & ich bin mir unsicher, ob man wirklich zuverlässig Tabellen auswählen/kopieren kann und die \t dazwischen kriegt. Und wenn am Anfang irgendein Feld fehlt, dann verschiebt sich bei meiner Methode ja alles ins Falsche.

Naja, dieser Post dient mir ein bisschen dazu, mir selbst darüber klar zu werden, was ich will, aber wenn jemand eine gute Klasse kennt oder mir Tipps geben kann oder weiß, wo ich mich irre, bzw. Nachteile der \t - Trennung kennt, die mir bisher nicht aufgefallen sind: Bitte schreibt!

Vielen Dank,
Ruben