necromonger: Werte aus einem Text auslesen

Hallo Leute
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

Folgende Werte sollten nun ausgelesen werden:

Termin: [1] um [2] Uhr Veranstalter: [3]  
[4]  
[5]  
[6]

Resultat:
[1] 24.03.2012
[2] 13:30
[3] Hans Muster
[4] Stehplätze: 500 unten Feld
[5] Sitzplätze: 100 oben Galerie
[6] Gesamt: 600

Ich hätte das ganze mit explode(" ", $test) gelöst, ich habe dann allerdings bei 3,4 und 5 Problme da z.B. Hans Muster auch nur Hans sein kann, bzw Sitzplätze: 100 oben Galerie könnte auch keine Sitzplätze heissen!

Hoffe es ist verständlich....
Grüsse

  1. Hi,

    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

      
    Warum machst du nicht einzelne Eingabefelder für die einzelnen Daten, die du haben willst?  
      
    Das ist für dich bei der Auswertung einfacher - und auch für den Benutzer, der nicht darauf achten muss, ein starres Textformat einzuhalten (bei dessen Verletzung deine Applikation entweder Fehler melden, oder schlimmer noch, unsinnige Daten verarbeiten wird).  
      
    MfG ChrisB  
      
    
    -- 
    “Whoever best describes the problem is the person most likely to solve the problem.” [Dan Roam]
    
  2. hi necro,

    hm also im moment erscheint mir dein anliegen sehr ... undurchdacht ...

    mich würde interessieren WARUM du das GENAU so machen willst, weil das problem was ich einfach sehe: woher willst du wissen, dass ein benutzer das genau so eingibt??
    bedenke, das sind USER, da muss man mit allem rechnen ;) und nein da heißt es nicht "ja dann muss er das richtig eingeben wenn er da was raus haben will" sondern da heißt es: schreib es so dass der user einfach nichts falsch machen kann!

    ich mein warum gibst du ihm den text nicht einfach vor uns setzt anstelle der einzugebenden daten formularfelder, die könnten ja beispielsweise so aussehen, dass dort nur ein unterstrich wie in einem lückentext zu sehen ist ...

    aber ich hab schon wieder viel zu weit hinten angefangen zu fragen, denn was ja auch wichtig ist, woher kommen deine daten?? willst du emails auswerten oder warum bestehst du auf genau dieses format?

    bis denn erstma

    der mech

  3. 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!