我不明白preg_replace_callback如何工作,如何从preg_replace更新

时间:2018-05-10 05:52:50

标签: preg-replace deprecated preg-replace-callback

如何使用preg_replace_callback查看此内容?

$str = preg_replace('/\&\#([0-9]+)\;/me', "code2utf('\\1',{$lo})", $str);

1 个答案:

答案 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");