Php 将preg_replace更改为preg_replace_回调

Php 将preg_replace更改为preg_replace_回调,php,preg-replace,preg-replace-callback,Php,Preg Replace,Preg Replace Callback,我正在尝试替换以下字符串: \u0080\U009锥形手尺\u0080\u009d 由于我必须为许多字符串替换这些代码,并且存在\u0080\u009的各种组合,如\u00e2\u0080\u0099和\u00a0,因此我一直在寻找一种解决方案,将它们全部转换回相应的值 我找到的解决方案已发布在此网站上: 当我试图使用这段代码时,php抛出了以下错误: 不推荐使用:preg_replace():不推荐使用/e修饰符,请使用 preg_替换_回调 由于我对php比较陌生,我首先理解preg_rep

我正在尝试替换以下字符串:

\u0080\U009锥形手尺\u0080\u009d

由于我必须为许多字符串替换这些代码,并且存在\u0080\u009的各种组合,如\u00e2\u0080\u0099和\u00a0,因此我一直在寻找一种解决方案,将它们全部转换回相应的值

我找到的解决方案已发布在此网站上:

当我试图使用这段代码时,php抛出了以下错误:

不推荐使用:preg_replace():不推荐使用/e修饰符,请使用 preg_替换_回调

由于我对php比较陌生,我首先理解preg_replace,但由于转换为preg_replace_回调,我完全被过度训练了。我已经查过了,但我没有查到:/

有人能解释一下如何将我的preg\u replace转换成preg\u replace\u回调吗

我现在尝试使用的代码如下所示:

$string = preg_replace("/\\\\u([a-f0-9]{4})",
              function($match){
                return = iconv('UCS-4LE','UTF-8',pack('V', hexdec('U$1')), $match[1]);                    
              }, 
              json_encode($string));
我已经阅读并理解了如何访问我找到的匹配项,但自从

“iconv('UCS-4LE','UTF-8',包装('V',hexdec('U$1'))”


从最初的代码中,我没有访问找到的任何匹配项,我很困惑如何设置我的匿名函数

从PHP 5.5.0开始,当传递“\E”修饰符时,会发出不推荐级别的错误。从PHP 7.0.0开始,在这种情况下会发出E_警告,“\E”修饰符无效

请访问和获取文档

“/\\u([a-f0-9]{4})”=>“/\\u([a-f0-9]{4})/”

$string = preg_replace("/\\\\u([a-f0-9]{4})",
              function($match){
                return = iconv('UCS-4LE','UTF-8',pack('V', hexdec('U$1')), $match[1]);                    
              }, 
              json_encode($string));