[php] eigenes templating

Es gibt 4 Antworten in diesem Thema. Der letzte Beitrag () ist von Umbekannt.

    [php] eigenes templating

    Moin moin,

    ich schreibe mir gerade eine funktion zum ersetzen von Strings in template dateien durch ausführbaren php code.
    Meine funktion sieht momentan wie folgt aus:

    PHP-Quellcode

    1. function assign ($src, $replace, $txt){
    2. $trans = array($src => $replace);
    3. $return = strtr($txt, $trans);
    4. return eval($return);
    5. }


    und die ausführung:

    PHP-Quellcode

    1. $txt = file_get_contents("./templates/$deftpl/header.tpl"); //$deftpl ist ein platzhalter für den standard stil
    2. $txt = assign("{quicklogin}", "echo \"test\";",$txt);
    3. echo $txt;


    Allerdings erhalte ich in meiner Funktion im Eval einen fehler:

    Parse error: syntax error, unexpected '>' in C:\xampp\htdocs\shop\include\functions.php(28) : eval()'d code on line 1


    einer eine idee?
    Geb ma das $return aus und poste es. eval braucht gültigen PHP-Code also muss dort irgendwoo ein Fehler liegen :D

    /edit: und das Array ist eig. unnötig, es sei denn du kannst das später mit ner Schleife füllen, weil wenn dus nur immer mit 2 Strings machst, kannst dus so benutzen:

    PHP-Quellcode

    1. strtr( string $str , string $from , string $to )
    In $return dürfte aber doch das komplette Template stehen nur mit dem ersetzten Platzhalter oder besteht das Template nur aus dem Platzhalter?

    /edit:
    Ansonsten empfehle ich die Platzhalter sowie deren zugewiesener Text in der Datenbank zu speichern, dann ein Array mit diesem zubefüllen und dann einmal mit strtr durchgehen. :)