0

你们中是否有人知道构建字符串模板的好方法,可以用相应的数据后缀填充?用于通信系统。

因此,所需的输出可能如下所示:

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

实际数据应该从数据库中提取,因此需要有一种通用的方法来处理这样的事情:

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

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

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

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

4

3 回答 3

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这样的模板引擎(这里的速成课程)。

于 2013-01-15T10:02:50.733 回答
0

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

于 2013-01-15T10:09:37.207 回答
0

感谢您提供有用的答案!

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

无论如何感谢您的帮助!

于 2013-01-18T09:07:10.523 回答