Preg替换preg替换回调

时间:2016-08-29 16:46:28

标签: php regex preg-replace

如何更改以下代码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

1 个答案:

答案 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])子模式的值。)