所以我会有一个名为template.php的模板文件,里面会有:
<html>
some other content
<?php $name ?>
</html>
基本上,我想从数据库中提取名称并将其插入$ name并将整个页面保存为新文件。
因此,在数据库中,我有一个名为Joe的名称,我创建的新文件将包含以下内容:
<html>
some other content
Joe
</html>
我遇到的唯一问题是找到正确的函数来实际替换模板文件中的变量,并能够将其保存到新文件中。
答案 0 :(得分:1)
看看我给this question a while back的答案。在那里,我解释了“变量解析”通常如何工作。
当我创建模板加载器时,我通常使用output buffering和php
include
。这允许您在准备好之前将页面作为php文件运行而不显示其内容。以这种方式“解析”你的php文件的好处是你仍然可以运行循环和函数。
以下是如何使用PHP输出缓冲来创建您想要的内容的示例。
模板 template.php
<html>
some other content
<?php $name ?>
</html>
您的数据库代码和内容在哪里 index.php
<?php
$name = 'John Doe';
if( /* some sort of caching system */ ) {
$parsed_template = file_get_contents('parsed_template.html');
}else {
ob_start();
include 'template.php';
$parsed_template = ob_get_clean();
file_put_contents('parsed_template.html', $parsed_template);
}
echo $parsed_template;
?>
答案 1 :(得分:1)
这不是模板通常的工作方式。您应该有一个模板文件,替换其值的变量,并将其显示给用户。您可以缓存这些生成的模板(总是相同的模板)但您永远不会为每个用户创建一个新模板文件并永久保存。这使得管理和更新应用程序的方式比你想要的更困难。
我建议使用像RainTPL这样的简单模板系统。这就是我在大多数项目中使用的...它使用起来非常简单,并提供了您需要的所有基本功能。
你也可以只使用PHP ......在SO上有一些答案可以解决这个问题,所以我不会介绍它。