Я пишу простой инструмент для замены всех шестнадцатеричных символов в строке на их эквивалент ascii.
Я могу заменить содержимое на регулярное выражение; однако при попытке запустить pack на гексе он не конвертирует его в char
$str = '${\\"GL\\x47\\x4c\\x4c\\x53\\"}';
$re = '/(\\\\x[0-9a-fA-F]+)/m';
$str = preg_replace_callback('/(\\\\x[0-9a-fA-F]+)/m', function($matches){
foreach($matches as $match){
return pack("H*",bin2hex($match));}
}, $str);
print_r($str);