gpt4 book ai didi

php - 将不推荐使用的 preg_replace/e 替换为 preg_replace_callback

转载 作者:IT王子 更新时间:2023-10-29 00:01:00 27 4
gpt4 key购买 nike

$result = preg_replace(
"/\{([<>])([a-zA-Z0-9_]*)(\?{0,1})([a-zA-Z0-9_]*)\}(.*)\{\\1\/\\2\}/iseU",
"CallFunction('\\1','\\2','\\3','\\4','\\5')",
$result
);

以上代码在升级到 PHP 5.5 后给出了弃用警告:

Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead

如何用 preg_replace_callback() 替换代码?

最佳答案

您可以使用 anonymous function将匹配项传递给您的函数:

$result = preg_replace_callback(
"/\{([<>])([a-zA-Z0-9_]*)(\?{0,1})([a-zA-Z0-9_]*)\}(.*)\{\\1\/\\2\}/isU",
function($m) { return CallFunction($m[1], $m[2], $m[3], $m[4], $m[5]); },
$result
);

除了更快之外,这还可以正确处理字符串中的双引号。您当前使用 /e 的代码会将双引号 " 转换为 \"

关于php - 将不推荐使用的 preg_replace/e 替换为 preg_replace_callback,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19245205/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com