首页 文章

将php代码分配给smarty模板引擎

提问于
浏览
0

我为我的公司 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 回答

  • 1

    你不能在Smarty那样做 . 还运行存储在数据库中的PHP代码听起来像一个可怕的想法 . 但如果由于某种原因你不得不继续这个废话(考虑到你不能使用eval),你可以试试这个:

    • 从数据库中读取php代码 .

    • 保存到临时php文件

    • 使用ob_start()打开输出缓冲

    • 包括您创建的文件

    • 使用ob_get_clean()将输出分配给变量

    • 将变量分配给模板

    但如果我是你,我会尝试以另一种方式做项目 .

相关问题