PHP preg_replace替代方案

J-T*_*J-T 1 php preg-replace deprecated

由于弃用,我们目前在我们的网站上收到preg_replace错误消息.

我们的代码如下:

$out = preg_replace('!s:(\d+):"(.*?)";!se', "'s:'.strlen('$2').':\"$2\";'", $data);
Run Code Online (Sandbox Code Playgroud)

有关如何用非弃用代码替换它的任何建议?

Mar*_*ski 5

preg_不推荐使用.它只是/e(从PHP 5.5开始):

/ e修饰符已弃用.请改用preg_replace_callback().有关安全风险的其他信息,请参阅PREG_REPLACE_EVAL文档.

并且preg_replace_callback()几乎是相同的preg_replace(),它采用的回调,而不是替换例外,你的代码的更新应迅速功课.