dedlfix: Werte aus einem Text auslesen

Beitrag lesen

Hi!

Ich würde gerne mit Php einen Text auswerten. Ich erkläre hier gleichmal wie ich mir das vorstelle...
Der Benutzer gibt in das Textfeld folgendes ein:
Termin: 24.03.2012 um 13:30 Uhr Veranstalter: Hans Muster
Stehplätze:
500 unten Feld
Sitzplätze:
100 oben Galerie
Gesamt: 600

Auf den ersten Blick schätze ich dein Vorhaben irgendwo zwischen "ungünstig aber lösbar" und "nahazu unmöglich" ein. Deshalb stell ich erst einmal ausweichende Fragen: Wo kommen die Daten her? Müssen sie unbedingt in der Form zu dir gelangen? Es gibt sicher bessere Alternativen, wenn man den Gesamtzusammenhang betrachtet.

Das Problem beim Auswerten ist, dass du Metadaten und Daten gemischt vorliegen hast. Metadaten wären "Termin:", "Veranstalter:" und so weiter. Wenn du genau zwischen den beiden Typen unterscheiden kannst, dann ist es noch vergleichsweise einfach, beides zu trennen. Dazu muss aber das Format einigermaßen fest vorgegeben sein. Du kannst dann Regeln aufstellen: Der Termin liegt in der ersten Zeile zwischen den Zeichenketten "Termin: " und "Veranstalter: ". Der Veranstalter befindet sich zwischen "Veranstalter: " und dem Zeilenende der ersten Zeile Die Stehplätze sind in der dritten Zeile zu finden. ...

Schwieriger wird es, wenn zwar die Metadaten immer gleich lauten, aber die Positionen unterschiedlich sind, an denen sie stehen können. Dann benötigst du schon einen (selbst geschriebenen) Parser, der beim Auftauchen bestimmer Dinge (Metadaten, Zeilenenden, gegebenenfalls Leerzeichen) eine bestimmte Auswertung vornimmt. Beispielsweise: wenn "Termin: " auftaucht, nimm den Teil danach bis entweder zum Zeilenende oder bis eines der anderen Schlüsselwörter auftaucht. Wenn hinter dem Schlüsselwort direkt ein Zeilenumbruch folgt, dann lies die nächste Zeile. ...

An die Grenze zur Unmöglichkeit kommst du, wenn das Format und die Metadaten frei vom Eingebenden gewählt werden können, denn dann benötigst du Intelligenz, um die Art der Daten zu erkennen und in eine dir genehme Stuktur einzuordnen.

[ code lang=php ]Termin: [1] um [2] Uhr Veranstalter: [3]

Zusatzfrage, rhetorischer Natur: Warum zeichnest du Daten als PHP-Code aus?

Lo!