【发布时间】:2016-05-18 16:53:03
【问题描述】:
我正在处理这个旧代码,但遇到了这个 - 失败了:
preg_replace('!s:(\d+):"(.*?)";!e', "'s:'.strlen('$2').':\"$2\";'", $sObject);
它告诉我 preg_replace e 修饰符已被弃用,而是使用 preg_replace_callback。
据我了解,我应该将 's:'.strlen('$2').':\"$2\";' 部分替换为在比赛中进行替换的回调函数。
我不太明白的是,我将要替换的正则表达式正在做什么。将 php 序列化数据填充到数据库字段(愚蠢,我知道......)中,并修复它们以重新插入,这是其中的一部分。
那么任何人都可以解释那个位在做什么,或者我应该用什么替换它?
【问题讨论】:
标签: php regex preg-replace pcre preg-replace-callback