我为我的公司 Build 了一个新的网站,我想使用smarty(v3.1.29) . 现在的问题是我们 store code 所有页面 in our database (家庭,产品,下载,......) . 有些页面包含PHP内联函数,例如:
<?php include("functions.php"); ?>
<p> Hello <?php echo printWorldInColor(); ?> </p>
在我的模板(.tpl)文件中,我有一个div部分来加载我们数据库中的内容:
<html>
<body>
<div id="content">
{$content}
</div>
</body>
</html>
所以我的代码后来看起来像这样:
<html>
<body>
<div id="content">
<?php include("functions.php"); ?>
<p> Hello <?php echo printWorldInColor(); ?> </p>
</div>
</body>
</html>
有没有一种方法可以在解析之前巧妙地处理PHP代码?
Hint: I dont want to edit my template file. I just want to parse the database content to my content-section of the website.
我尝试了什么:
-
将数据库内容保存为字符串并用smarty-PHP-tags替换PHP标签,然后将其分配给模板
-
SmartyBC-Class
1 回答
你不能在Smarty那样做 . 还运行存储在数据库中的PHP代码听起来像一个可怕的想法 . 但如果由于某种原因你不得不继续这个废话(考虑到你不能使用eval),你可以试试这个:
从数据库中读取php代码 .
保存到临时php文件
使用ob_start()打开输出缓冲
包括您创建的文件
使用ob_get_clean()将输出分配给变量
将变量分配给模板
但如果我是你,我会尝试以另一种方式做项目 .