PHP einfache template-engine leere tags entfernen

lordfritte

Lieutenant
Registriert
Juli 2006
Beiträge
965
Hallo, ich habe eine einfache Template-Engine, diese arbeitet ganz simpel mit Platzhaltern und str_replace "{ein_plathalter}".
Am ende möchte ich die Template säubern, damit keine vergessenen Tags mehr im Raum stehen:

PHP:
preg_replace("/\{\S+\}/", "", $content);

Das Problem: Mir wird auch json in javascript's zerschossen, kann ich irgendwie alles zwischen <script*> und </script> ausschließen?
 
Sicher würde das gehen. Aber nicht einem einzigen preg_replace() Funktionsaufruf. Da mußt halt etwas mehr Handarbeit leisten. Wie du das Problem nun genau löst werde ich dir nicht vorkauen. Sieht wie eine nette Programmieraufgabe zum lernen aus. Viel Spaß.
 
Naja es würde auch mit einem preg_replace gehen. Da gibt es verschiedene Ansätze:
Du akzeptierst innerhalb der geschweiften klammern nur buchstaben und punkte. Da die Notation von json da etwas anders ist (Doppelpunkte ;)) könntest du diese ausschließen.
Oder ignorierst alles, was innerhalb von Script-Tags steht. Auch das kannst du mit einer Regex angeben.
Es gibt bestimmt och mehr Varianten ;)
 
KISS - Keep It Simple, Stupid
Tausche deine Template-Tag-Markierungen aus. Verwende z.B. {{...}}. Jetzt kann deine Replace-Logik zwischen "natürlich" vorkommenden Klammer-Ausdrücken und Insert Tags unterscheiden.
 
Zurück
Oben