Und das wars jetzt? Die Fehlerbeschreibung sollte doch wohl einen deutlichen Hinweis liefern wobei ich mich vertippt habe. Ach was soll's, einfach copy and paste -> "(".
Natürlich hab ich die Klammer eingefügt Dann kam folgende Fehlermeldung:
Nothing to repeat. Was ja auch nicht das Problem war.
Nur warum Du so einen Aufwand treibst um ein explode anwenden zu können?
Ich verwende den Explode, da ich mit dem Pregmatch nicht voran komme - sprich, die Werte hinter '|' sich immer mit dem neueren Suchergebnis im $matches Array überschreiben.
Ich hatte die Hoffnung, dass ich ein Pregmatch finde, das mir eine ganze Menge HTML Code + den Sprachplatzhalter {LG:<identifier><|phrase1><|phrase2|>} durchsucht und
1. den Identifier in dem $matches Array speichert
2. und jede phrase in dem $matches Array speichert
Vorher hatte ich nur den Identifier: {LG:<<identifier>} ohne die Phrasen. Das war natürlich wesentlich leichter in den Template-HTML String zu finden:
$string = '<div>{LG:WARNING_4}';
$pattern = '/\{LG:([A-Z_0-9]+)\}/';
preg_match_all($pattern, $string, $matches, PREG_SET_ORDER);
Ich hab hier eigentlich einen Experten für Reguläre Ausdrücke, nur der kam auch nicht weiter, da die Phrasen sich wohl gegenseitig im $matches Array überschreiben.
Mit Look-around assertions hatte ich es auch schon probiert, sprich JEDES Element zwischen '{LG:' und '}' was nach einem '|' kommt zu speichern - aber wieder das gleiche, nur die letzte Phrase wurde im Array gespeichert. Was die Vermutung, dass sie sich gegenseitig überschreiben, unterstützt.