~~~
//{data module="site" func="site_article" cid="$cid" assign="result" return="true"}
//
//preg_replace_callback — 执行一个正则表达式搜索并且使用一个回调进行替换
$str = preg_replace_callback('/{data\s+(.+?)}/s', "moduledata", $str);
//explode — 使用一个字符串分割另一个字符串
$params = explode(' ', $params[1]);
~~~