Moin,
ich bin gerade dabei mithilfe von Regex einen eine art BBCode auseinander zu ziehen. Leider kommt nicht das dabei raus was ich gerne hätte und ich stehe gerade auf dem Schlauch.
Vielleicht hat jemand eine zündende Idee für mich.
Folgendes möchte ich Auswerten:
Ziel soll es sein, dass ich die einzelnen Parameter erhalte inkl. key erhalte.
also etwa so:
Mein Pattern sieht wie folgt aus:
Ich habe es etwas auseinandergezogen um es lesbarer zu machen und Variabeln nur pseudo eingesetzt.
Meine Idee war, dadurch dass ich das Key->Value Paar in die Klammern gesetzt habe, sollte das match_all mir jeden Teil rausfiltern der diesem Pattern entspricht. Funktioniert super, wenn ich nur ein Key->Value Paar habe! Bei zwei oder mehreren erhalte ich immer nur das letzte.
Woran habe ich nicht gedacht?
Ich danke euch und wünsche einen schönen Montag.
Edit:
Das Problem ist gelöst, aber für jeden Anfänger oder jeden der sich vielleicht denkt, man könnte den unten stehenden Code einfach in seinen übernehmen, leßt auch das von @ComFreek und achtet auf die Sicherheit. Das ist nur ein Beispiel und bei mir für interne Anwendung gedacht. Keinesfalls sollte man diesen Code ungefiltert in einer Live Umgebung nutzen!
ich bin gerade dabei mithilfe von Regex einen eine art BBCode auseinander zu ziehen. Leider kommt nicht das dabei raus was ich gerne hätte und ich stehe gerade auf dem Schlauch.
Vielleicht hat jemand eine zündende Idee für mich.
Folgendes möchte ich Auswerten:
Code:
[BOX width="100%" title="Test"][/BOX]
also etwa so:
PHP:
array(
0 => 'width="100%"',
1 => 'title="Test"'
)
Mein Pattern sieht wie folgt aus:
Ich habe es etwas auseinandergezogen um es lesbarer zu machen und Variabeln nur pseudo eingesetzt.
PHP:
$wert = "[a-zA-Z\-_]+";
$value = "[\s\d\w\b%\-_&$§!.,;|<>\(\)"'#+*~/\\?ßäöü{}]*";
$pattern = '\[BOX ( $wert="$value")* *\]';
Meine Idee war, dadurch dass ich das Key->Value Paar in die Klammern gesetzt habe, sollte das match_all mir jeden Teil rausfiltern der diesem Pattern entspricht. Funktioniert super, wenn ich nur ein Key->Value Paar habe! Bei zwei oder mehreren erhalte ich immer nur das letzte.
Woran habe ich nicht gedacht?
Ich danke euch und wünsche einen schönen Montag.
Edit:
Das Problem ist gelöst, aber für jeden Anfänger oder jeden der sich vielleicht denkt, man könnte den unten stehenden Code einfach in seinen übernehmen, leßt auch das von @ComFreek und achtet auf die Sicherheit. Das ist nur ein Beispiel und bei mir für interne Anwendung gedacht. Keinesfalls sollte man diesen Code ungefiltert in einer Live Umgebung nutzen!
Zuletzt bearbeitet: