PHP字符串模板

时间:2013-01-15 09:59:55

标签: php string templates

你们中的任何人都知道构建字符串模板的好方法,可以用后面的相应数据填充吗?这是一个通信系统。

所以期望的输出看起来像:

  蝙蝠侠你好,你好吗?您的朋友超人,猫女和蜘蛛侠已经在使用我们的服务。您想尝试一下我们的服务吗?

实际数据应从数据库中提取,因此需要采用一般处理方法:

  

你好{用户名},你好吗? {If:HasFriendsWhoUseTheService}您的朋友{ListFriends}已经在使用我们的服务。{EndIf}您是否想尝试我们的服务?

这意味着如果用户没有使用系统的朋友,则不应打印中间句子。

我刚刚构建了一个小型系统,能够恰当地替换{username}或{ListFriends}等字段,但后来我认识到,还应该有一些if语句。

有人知道图书馆或类似的东西支持这些东西吗?也许还需要考虑更多,以获得最大的灵活性。

3 个答案:

答案 0 :(得分:1)

如果模板仅由受信任的人编辑,那么您应该只使用PHP本身:

Hello <?php echo $Username;?>, how are you doing?
<?php if ($ListFriends) : ?>
Your friends <?php echo $ListFriends;?> are already using our service.
<?php endif; ?>
Would you like to give our service a try?

如果允许模板作者完全编程功能是不可接受的,那么您可以查看模板引擎,如Smarty(速成课程here)。

答案 1 :(得分:0)

构建自定义解析器。您可以在此链接中查看BBCode解析器作为示例http://forrst.com/posts/Simple_PHP_BBCode_Parser-N0z据我所知,您的字符串模板将适用于{Username}{if:Condition}Content{/endif}等标记,这与标记相同BBCode做。

答案 2 :(得分:0)

感谢您提供有用的答案!

我与相关经理进行了交谈,并对要求进行了改进,以使其更容易。所以我最终只提供了像{Username}或{Address}这样的简单字段,因为没有简单的方法来创建通用系统。

非常感谢您的帮助!