0

我正在开发具有一些内置模块(日历、天气等)的自定义 CMS,我们希望允许最终用户将其插入到他们的内容中。他们可以使用 CKEDITOR 输入内容。

寻找一些提示:

  1. 输入这些代码的推荐语法是什么?我们需要检索模块名称和任何相关参数。正在考虑类似:{{module-name, width=100, height=200, items=5}}
  2. 什么 PHP 函数最适合解析这些?

我知道有一些模板库可以提供这种类型的功能,但此时我们想尝试自己构建这部分。

4

2 回答 2

2

没有用于解析此类(或类似)输入的内置方法。您将不得不使用一些模板库或自己编写解析器。

于 2012-05-29T19:08:43.557 回答
1

选择不会在项目其他地方意外使用的任何语法。双花括号可能没问题。

使用具有非贪婪匹配的正则表达式来抓住每个人的胆量

$matches = array();
preg_match("/\{\{(.*?)\}\}/", $content, $matches);

// or use the match all the grab all of them
preg_match_all("/\{\{(.*?)\}\}/", $content, $matches);

从那里,您可以简单地用逗号分隔它们并处理各个令牌

$tokens = split(",", $module);
$module_name = array_shift($tokens);
foreach ($tokens as $token) {
    // process the token
}
于 2012-05-29T19:11:34.010 回答