如何使用preg_replace_callback查看此内容?
$str = preg_replace('/\&\#([0-9]+)\;/me', "code2utf('\\1',{$lo})", $str);
答案 0 :(得分:0)
如果我没记错,您想使用preg_replace_callback而不是/e
modifier。
如果要将额外参数传递给回调函数,可以使用use
indentifier或在another function中包装回调。
第二个例子可能如下:
$str = preg_replace_callback(
'/\&\#([0-9]+)\;/m', function ($matches) use ($lo) {
// function body with return statement
}, $str
);
备注强>
您的正则表达式\&\#([0-9]+)\;
将匹配𸽵
之类的字符串。我认为您无需逃离&
和#
。
在您的代码中,您使用return strtoupper($matches[1], $lo);
但strtoupper使用一个参数而不是2个参数。
如果这是您要匹配的内容,那么在运行your code时,您会发现$matches[1]
包含"233333"
,因此会将其称为return strtoupper("233333");