function replaceContent($matches = array()){
if ($matches[1] == "nlist"){
// do stuff
return "replace value";
} elseif ($matches[1] == "alist"){
// do stuff
return "replace value";
}
return false;
}
preg_replace_callback('/<([n|a]list)\b[^>]*>(.*?)<\/[n|a]list>/','replaceContent', $page_content);
如果找到匹配项,replaceContent() 中的 $matches 将返回此数组:
Array
(
[0] => <nlist>#NEWSLIST#</nlist>
[1] => nlist
[2] => #NEWSLIST#
)
Array
(
[0] => <alist>#ACTIVITYLIST#</alist>
[1] => alist
[2] => #ACTIVITYLIST#
)
目前我的 preg_replace_callback 函数将匹配值替换为 $matches[0]。我正在尝试做的事情并想知道是否有可能替换标签 ($matches[2]) 中的所有内容,同时能够进行 $matches[1] 检查。
在这里测试我的正则表达式:http ://rubular.com/r/k094nulVd5