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


PHP eval code and store the result into a variable

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

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

但现在还剩下一个小问题。那就是我想翻译生成的代码。

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

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

简而言之,类逻辑是:

  1. 加载模板文件
  2. 添加内容
  3. 编译模板
  4. 评估代码(但不幸的是也显示代码)
  5. 翻译
  6. 代码,以便我可以翻译由 PHP 脚本解析的代码

我会喜欢这样的东西:

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

有谁知道如何实现这一目标?

提前感谢!

$code = eval($tpl);

看看这个。