Inno: Template richtig parsen

Beitrag lesen

Hallo Inno,

$template = require_once('./templates/'.$name.'.php'); Klassen- und lokale Variablen gleich zu bennen ist doof,

eval ("$this->template = "$echo";"); weil man sie schnell verwechseln kann.

$echo = str_replace('<#lng_'.$key.'#>', $value, $template); mehrmals...

Schau also wann du $this->template und wann $template verwendest bzw verwenden willst.

Jep, hab die lokale Variable entfernt, da sie keinen Sinn machte.

Bist du dir auch sicher, dass du die Datei jeweils includen willst? Dann kann es ja auch schon dadurch zu einer ausgabe kommen und ein eval() wäre nicht mehr notwendig..

Ich habe nur die include Funktion noch darin stehen, da file_get_contents in früheren Fällen Fehler machte bzw. ich glaubte include könnte die Problemlösung sein.

Hab den Code jetzt bearbeitet: <?php class Template {   var $template;

function parse_template($name){           #$this->template = file_get_contents('./templates/'.$name.'.php');     $this->template = include('./templates/'.$name.'.php');           $search = array('text' => 'Textdeslanguagefile','Register' => 'Registrieren');           foreach($search as $key => $value)           {                  $echo = str_replace('<#lng_'.$key.'#>', $value, $this->template);      echo 'wird augeführ';            }        eval ("$this->template = "$echo";");     echo $echo;   } } ?>

Leider kommt folgende Fehlermeldung: Parse error: syntax error, unexpected '<' in /www/htdocs/w008dc4e/web720/system/template.php(13) : eval()'d code on line 2a

Dazu wird nicht str_replaced.

Danke, dass du dir die Mühe machst mir zu helfen, Inno