如何用php解析用户输入的标签

时间:2012-05-29 19:03:41

标签: php parsing

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

寻找一些提示:

  1. 输入这些代码的推荐语法是什么?我们需要检索模块名称和任何相关参数。想的是:{{module-name,width = 100,height = 200,items = 5}}
  2. 哪些PHP函数最适合解析这些?
  3. 我知道有一些模板库可以提供这种类型的功能,但此时我们想尝试自己构建这个部分。

2 个答案:

答案 0 :(得分:2)

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

答案 1 :(得分: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
}