PHP eval代码并将结果存储到变量中

时间:2015-01-15 10:09:57

标签: php templates eval

我继续创造一个非常简单的模板引擎。 因为我想为我的模板添加逻辑,所以我最终回到了我允许PHP代码进入我的代码的地步,我通过改进代码来启用它。

也许不是最好的解决方案,但在查看WordPress模板时,我注意到这个想法本身可能并不那么糟糕。

但现在仍然存在一个小问题。 那就是我要翻译生成的代码。

但它已经被评估过了。因此解析。 我想通过使用 ob_get_contents()来解决这个问题。 但这又带来了一个问题,如果出现错误,它会显示一个白色的屏幕。 (内存使用等)

另外,在评估时,它仍然没有消除eval解析内容的问题。

简而言之,类逻辑是:

  1. 加载模板文件
  2. 添加内容
  3. 编译模板
  4. 评估代码(但遗憾的是还显示代码)
  5. 翻译代码,以便我可以翻译由PHP脚本解析的代码
  6. 我会喜欢这样的东西:

    $code = eval('?>'.$tpl.'<?php');
    $code = translate($code);
    WriteCache($code);
    SetDocumentHeader();
    echo $code;
    

    有人知道如何实现这个目标吗?

    提前致谢!

1 个答案:

答案 0 :(得分:-1)

$code = eval($tpl);

Check this out.