Suchbegriffe aus Variable sezieren
Rafael
- php
0 Sven Rautenberg0 Karin0 dedlfix
0 s.oliver
Ich bin nun schon geschlagene zwei Tage auf der Suche nach einer Möglichkeit einen String in mehrere Suchbegriffe zu zerlegen. Meiner Meinung nach müsste ich ja nicht der einzige sein, der sich jemals mit dem Problem rumgeschlagen hat. Nach einigen gescheiterten Versuchen frage ich nun aber doch wo ich sowas finde...
Ich möchte eigentlich eine Variable auslesen und ähnlich wie mit explode() alle Begriffe in einer Variable haben. Nur das Begriffe, die inerhalb von Gäsefüsschen als ein Begriff stehen bleiben sollen.
Also: "test "ein versuch" hallo"
soll werden: {
[0] => test
[1] => ein versuch
[2] => hallo
}
Bitte :( der erlösende Link, ein helfendes Stichwort...
Moin!
Ich möchte eigentlich eine Variable auslesen und ähnlich wie mit explode() alle Begriffe in einer Variable haben. Nur das Begriffe, die inerhalb von Gäsefüsschen als ein Begriff stehen bleiben sollen.
Also: "test "ein versuch" hallo"
Dann wirst du dir einen passenden Parser schreiben müssen, der entsprechend der von dir definierten Syntax die Zerlegung vornimmt. Im Gegensatz zu einem simplen explode() an Leerzeichen wirst du also berücksichtigen müssen, dass Texte innerhalb von Anführungszeichen nicht getrennt werden dürfen.
Am schlauesten gehst du den String von vorne aus Zeichen für Zeichen durch. Du merkst dir, welchen Zustände du hast (Startzustand wäre z.B. "Anführungszeichenmodus: nein"), und schaust dir das erste Zeichen an. Ist es ein Leerzeichen, und bist du nicht im Anführungszeichenmodus, ist es als Trennzeichen zu behandeln. Ist es ein Anführungszeichen, dann ändert sich der Anführungszeichenmodus. Ist es ein Textzeichen, dann muß es in das aktuelle Suchwort kopiert werden. Und so weiter (sofern du noch weitere Ideen für Suchwortsyntax hast, muß die natürlich auch noch behandelt werden).
- Sven Rautenberg
echo $begrüßung;
Ich möchte eigentlich eine Variable auslesen und ähnlich wie mit explode() alle Begriffe in einer Variable haben. Nur das Begriffe, die inerhalb von Gäsefüsschen als ein Begriff stehen bleiben sollen.
Man könnte versuchen, das mit preg_split() hinzubekommen komma pause aber doppelpunkt
Ich stelle mir das Suchmuster nicht ganz einfach vor. Getrennt werden soll ja an Leerzeichen, aber nicht, wenn ihnen eine ungerade Anzahl von " nebst beliebigen anderen Zeichen vorangegangen ist und eine gerade Anzahl von " nebst beliebigen anderen Zeichen folgt. Wobei man den letzten Teil auch weglassen kann, da sich eine Eindeutigkeit schon aus dem Vorangehen einer ungeraden Anzahl ergibt.
echo "$verabschiedung $name";
Servus,
Ich möchte eigentlich eine Variable auslesen und ähnlich wie mit
explode() alle Begriffe in einer Variable haben. Nur das Begriffe,
die inerhalb von Gäsefüsschen als ein Begriff stehen bleiben sollen.
muss die Liste genau der Reihenfolge der Eingabe entsprechen? Sollte
das nicht der Fall sein, könnte man einfach alle Fragmente innerhalb
von Anführungszeichen zuerst abspeichern und dann den verbeleibenden
Rest in eine Liste zerlegen.
Grüsse