Konstante im Template

nautiLus`

Erfahrenes Mitglied
Hallo, wie kann ich denn Konstanten über ein Template ausgeben, welches mit eval() arbeitet, muss ich da die Konstanten extra einer Variable zuteilen, damit das geht?

Danke, nauti
 
Wenn das mit eval arbeitet müßte doch
PHP:
echo meineKonstante;
oder
PHP:
<? echo meineKonstante; ?>
funktionieren.
ansonsten halt
PHP:
$meineKonstante = meineKonstante;
 
Hallo,

ich möchte im Template eine Konstante angeben z.B. {KONSTANTE}
Das gebe ich direkt im HTML Quellcode an.

eval() ersetzt mir ja nur die Variablen ($variable) aber keine Konstanten. Ich will aber jetzt auch nicht jede Konsatnte die ich im Template benutze einer Variable zuordnen, das nervt.

Dazu brauche ich jetzt einen Algorithmus, der mir folgendes macht:

1) Das Template nach Passagen wie {KONSTANTE} durchsuchen
2) Den Konstantennamen daraus filtert: hier also KONSTANTE
3) {KONSTANTE} mit dem Wert von KONSTANTE ersetzt.

Folgendes hab ich jetzt schon.

preg_match_all("/\{(.*)\}/", $found, $a);

$found ist mein kompletter HTML Text (das Template), in $a wird das Array gespeichert:

Code:
    [0] => Array
        (
            [0] => {KONSTANTE}
        )

    [1] => Array
        (
            [0] => KONSTANTE
        )

Jetzt muss ich [0] => {KONSTANTE} in den Wert von KONSTANTE ersetzen.
Wie stelle ich das an, wenn ich da str_replace nehme, wird KONSTANTE wieder als String verwedet und einfach durch den Text "KONSTANTE" ersetzt.

Hilfe! :)
nauti
 
eval() ersetzt zumindest nach dem vorletzten Kommentar bei http://de2.php.net/manual/de/function.eval.php, nicht nur die Variablen, sondern führt auch Code aus und damit auch ein direktes echo(). Getestet habe ich das jetzt nicht aber nach dem Kommentar gehe ich davon aus, das eval() mehr macht, als nur $variable zu ersetzen.
Ich bin im übrigen ein absoluter Gegner von eval(), da hierdurch unter umständen User Code einschleusen können, den Du eigentlich nicht in Deinem Skript haben willst.
 
Zurück