• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

Templatevariablen filtern

Status
Für weitere Antworten geschlossen.

smdata2

Neues Mitglied
Hallo folgendes Problem:
ich habe eine Templatedatei die ich mit php geöffnet habe, so dass der quelltext dieser datei als teilstrings in einem array gespeichert ist:

ein Beispielauszug aus dem Quelltext:
HTML:
<div id="content">
{$content}
</div>
nun möchte ich mit preg_match alle variablen die dieses "{$name}" schema haben rausfiltern. kann mir da jemand einen regulären ausdruck zusammenbasteln? :-D

wäre sehr nett. danke ;ugl
mfg smdata2
 
versteh ich jez nicht so ganz. also du hast ein cms gebuat. in dem template sind dabei variablen die du herausfiltern möchtest. richtig? was willst du denn mit den variablen anfangen? ich denke mal ersetzen, aber dann könntest du doch in deinem php code die variablen angeben müssten automatsich ersetzt werden. ansonsten
PHP:
preg_match($name, $content( je nachdem wie es bei dir heißt), $treffer) print($treffer);
 
wer lesen kann ist klar im vorteil ;)
ich möchte einfach eine eigene templateengine bauen

und anstatt mir zu sagen dass ich preg_match brauche, würde ich lieber gerne den regulären ausdruck dafür haben ... weiß nicht was daran so schwer ist das zu verstehen

und nein ich möchte keine smarty template engine o.ä. verwenden sondern möchte so etwas selber machen ... und fragt bloß nicht warum

komme nicht klar dass meine frage nicht verstanden worden ist:
kann mir da jemand einen regulären ausdruck zusammenbasteln?

mfg smdata2
 
PHP:
// du willst ja sicher das man seine tokens selbst definieren kann
// und da { für javascript benutzt wird bevorzuge ich in meiner template
// engine {- da man soetwas in keiner gebräuchlichen sprache findet
$startToken = preg_quote( '{-' );
$endToken = preg_quote( '-}' );

// wie in php nach $ muss ein buchstabe oder ein unterstrich _ kommen
// und danach dann buchstaben, zahlen und den unterstrich. :)
// wenn die Locale auf de_DE eingestellt ist matcht \w aber auch auf umlaute ^^
$expression = "/" . $startToken . '$([a-z_]\w*)' . $endToken . "/i";
$replace = 'echo $vars["\1"];';
preg_replace($expression, $replace, $text);

//Edit: ich habs dir so aufgeschrieben das jeder es versteht aber wenn du das auch so machen willst und ohne ordentliches OOP dann lass es doch einfach ^^
 
Status
Für weitere Antworten geschlossen.
Zurück
Oben