简单的 PHP 模板...可以在没有 `eval` 的情况下工作吗? [英] Dirt-simple PHP templates... can this work without `eval`?

查看:24
本文介绍了简单的 PHP 模板...可以在没有 `eval` 的情况下工作吗?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

更新-感谢所有回复.这个 Q 有点乱,所以如果有人感兴趣,我开始了续集.

<小时>

我正在为朋友编写一个快速脚本,并偶然发现了一种在 PHP 中进行模板化的非常简单的方法.

基本上,这个想法是将html文档解析为heredoc字符串,因此其中的变量将被PHP扩展.

传递函数允许在字符串中进行表达式评估以及函数和静态方法调用:

function passthrough($s){return $s;}$_="直通";

解析heredoc字符串中文档的代码非常简单:

$t=file_get_contents('my_template.html');eval("$r=<<<_END_OF_FILE_
$t\_END_OF_FILE_;
");回声 $r;

唯一的问题是,它使用了eval.

问题

  • 谁能想出一种不使用eval,但不添加解析器或大量正则表达式的方法来进行这种模板化?

  • 有什么建议可以在不编写完整的解析器的情况下转义不属于 PHP 变量的流浪美元符号吗?流浪美元符号问题是否使这种方法不适合认真"使用?

<小时>

这是一些模板化的 HTML 代码示例.





        
相关文章
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆