PHP |模板-仅将文件用作模板

时间:2018-08-03 23:14:42

标签: php html parsing templates conditional-statements

我当前使用的是自己的模板系统,需要将变量分配给它们的占位符,稍后将替换它们。不幸的是,尚无法在模板内部直接使用if / else之类的条件。我总是必须在PHP中处理此问题,并需要将最终值分配给模板。

php当前的状态: $template->assign('{content}', ($b ? 'value' : 'value2'))和html:<div>{content}</div>

我想要什么: <div><?php echo ($b ? 'value' : 'value2'); ?></div><div><?php echo ($b ? 'value' : $this->renderAnotherTemplate()); ?></div>

我可以使用.php文件或类似的文件,但据我所记得,模板文件名在URL中可见。因此,我需要一种方法来从模板文件中读取字符串,执行它的php并访问解析器中使用的当前变量(eval很危险)。

你们中有人有一个好主意,怎么做?

谢谢!

1 个答案:

答案 0 :(得分:0)

为什么不只包含一个PHP文件?

include(‘template.php’)

您将能够访问模板文件中所有在调用include()范围内可用的变量。您可以将其包装在模板对象的方法中,该方法也可以接受要在模板文件中使用的变量。

另一种解决方案是引入模板语言,例如,blade,twig或smarty。但老实说,我只会在一个小项目中使用更简单的包含项