所以我构建了这个模板引擎,但是当我解析我的文件时,它会禁用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
请注意,这不是任何现有的模板引擎。
答案 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有很多(好的)模板引擎可用。我建议使用其中之一,而不是重新发明它们。但是,如果您仍想开发自己的资源,请查看其来源并了解他们如何解决您现在面临的问题。他们的解决方案中有很多想法和汗水。