模板引擎禁用PHP

时间:2014-05-16 15:18:51

标签: php template-engine

所以我构建了这个模板引擎,但是当我解析我的文件时,它会禁用php,这使我无法获得我的网站名称和内容。这是解析器(轻量级)

class Template {

    public  function __construct($directory) {
        $this->directory = $directory;
    }
public function getTemplate($filename) {
    $file = "app/themes/" . $this->directory . "/" . $filename . ".php";
    if(!file_exists($file)) {
        die("Het opgevraagde bestand bestaat niet.");
    } else {
        $this->content = file_get_contents($file);
        echo $this->content;
    }
}

}

有没有人知道再次启用PHP的方法?顺便说一下,我在我的模板上运行它:

$core->getSitename

请注意,这不是任何现有的模板引擎。

1 个答案:

答案 0 :(得分:3)

只需include页面(而不是通过file()等加载)。如果这样做,输出缓冲区也会派上用场:

public function getTemplate($filename) {
    $file = "app/themes/" . $this->directory . "/" . $filename . ".php";
    if(!file_exists($file)) {
        die("Het opgevraagde bestand bestaat niet.");
        //better to throw an error instead
    } else {
        ob_start();
        include $file;
        $this->content = ob_get_contents();
        ob_end_clean();
    }
}

PHP有很多(好的)模板引擎可用。我建议使用其中之一,而不是重新发明它们。但是,如果您仍想开发自己的资源,请查看其来源并了解他们如何解决您现在面临的问题。他们的解决方案中有很多想法和汗水。