Danke!
Die korrigierte Fehlerbeschreibung: Maskierung in Regulär Expressions fehlerhaft. :)
Leider hat die Maskierung nicht funktioniert, d.h. ich erhalte immer ein leeres Array.
Hier die korrigierte Funktion ....
preg_match_all("#{if[start]}(.*?){if[ende]}#", $String, $Array);
Hier ein Ausschnitt aus dem HTML Template ...
{if[start]}
<tr>
<td class="title">{object_area_lbl}</td>
<td class="text">{object_area_val}</td>
</tr>
{if[ende]}
Kann es damit zusammenhängen, dass im (.*?) Teil auch noch weitere Platzhalter existieren? Diese werden mit einem einfachen str_replace() mit Informationen ersetzt.
Gruß,
Mr. Luke
Hi,
Leider klappt das bei dieser Expression icht. Ich denke es liegt an den Sonderzeichen {} oder [],
exakt.
aber auch wenn ich diese mit \ maskiere dann funktioniert es nicht :(
Du bringst Zeichen wie "[" oder "{" in einen RegExp-Kontext, musst sie also RegExp-spezifisch kodieren. Das hast Du fast vollständig durchgeführt. Anschließend bringst Du diese RegExp in den String-Kontext, musst sie also String-spezifisch kodieren. Und in Zukunft vergiss bitte nicht die Fehlerbeschreibung - "funktioniert nicht" war noch nie eine und wird auch niemals eine sein.
Cheatah