如何更改以下代码preg_replace(在PHP 5.6中弃用):
$ Encoded = preg_replace ('/ ([\ 000- \ 011 \ 013 \ 014 \ 016- \ 037 \ 075 \ 077 \ 137 \ 177- \ 377]) / and',
"'='. Sprintf ('% 02X', ord ('\\ 1'))", $ encoded);
与preg_replace_callback
?
答案 0 :(得分:0)
您可以像这样使用preg_replace_callback
:
$re = '/([\000-\011\013\014\016-\037\075\077\137\177-\377])\/and/';
$encoded = preg_replace_callback($re, function($m) {
return '='. sprintf('%02X', ord($m[1]));
}, $encoded);
其中$m
是匹配对象,包含您可以通过索引访问的匹配和可选捕获。例如。 $m[1]
是捕获组#1值(即([\000-\011\013\014\016-\037\075\077\137\177-\377])
子模式的值。)