【发布时间】:2012-07-07 16:55:30
【问题描述】:
编辑:也许我应该把这部分说清楚。用户正在编写模板。所以我希望语法简单,我不能相信他们有强大的模板引擎。
所以,我需要一个用于编写电子邮件的模板引擎,使用令牌(简单)和条件逻辑(不太简单)。
例如:Hello{if first_name} dear {first_name}{endif}, blah blah blah.
如果 first_name 不可用,则应为:Hello, blah blah blah.
我能够使用 eval 让它工作......但我们都知道 eval 是邪恶的。
$body = preg_replace('/{if ([^{\|}]+)}/i', '<?php if(isset(\$tokens[\'$1\'])):?>', $body);
$body = preg_replace('/{endif}/i', '<?php endif;?>', $body);
谁能指点我这个教程?除了简单的令牌替换之外,我似乎找不到任何东西。
【问题讨论】:
-
有什么理由要重新发明轮子而不是使用既定的解决方案?
-
就像@raina77ow 说的,你为什么要重新发明轮子?特别是当您想要不那么简单的功能时。
-
Swift Mailer 是一个包含自己的电子邮件模板引擎的电子邮件发件人库。
-
我已经编写了自己的模板引擎,但我是一位经验丰富的程序员,并且将其作为练习来满足非常具体的要求。如果不将错误和漏洞引入您的应用程序,它们很难有效实施。我还建议你坚持一个标准的
-
看看 Twig。 twig.sensiolabs.org
标签: php string templates token