我试图用一个大写的拷贝来改变preg_replace中的匹配值,但似乎无法弄清楚……
我试过了:
preg_replace("#\[name=((?:keywords)|(?:description))\]#is", "[name=" . strtoupper($1) . "]" ,$str )和
preg_replace("#\[name=((?:keywords)|(?:description))\]#is", "[name={strtoupper($1)}]" ,$str )但都不管用。
任何帮助都非常感谢。
发布于 2010-10-29 13:01:20
可以使用e修改器,如下所示:
preg_replace("#\[name=((?:keywords)|(?:description))\]#ise", "'[name='.strtoupper('\\1'). ']'" ,$str )发布于 2010-10-29 12:57:30
为此,您可以使用回调函数和preg_replace_callback。
例如(未测试):
preg_replace(
"#\[name=((?:keywords)|(?:description))\]#is",
create_function('$matches', 'return "[name=" . strtoupper($matches[1]) . "]"'),
$str
)https://stackoverflow.com/questions/4049057
复制相似问题