如何使用preg_replace将匹配的十六进制值转换为十六进制的文本表示形式?
$string = 'abcd'.hex2bin(23).'abc'.hex2bin(24);
例如str_replace('/[\x20-\x25]/', 'what here?', $string)
会得到如下输出:
abcd[HEX:23]abc[HEX:24]
我到底想做什么:我正在寻找隐藏的角色,并希望显示其十六进制值。
答案 0 :(得分:1)
您需要preg_replace_callback()
之类的内容来对所有匹配进行回调。
尝试:
$string = 'abcd'.hex2bin(23).'abc'.hex2bin(24);
$text = preg_replace_callback('/[\\x20-\\x25]/', function($matches) {
$string = bin2hex($matches[0]);
return "[HEX:{$string}]";
}, $string);