Преобразование шестнадцатеричного кода в читаемую строку в PHP

Привет, сообщество StackOverflow,

Вот мой вопрос, как преобразовать php с шестнадцатеричным кодом в читаемую строку? Что я имею в виду, это все внутри этого 2 php-кода ..

<?php echo "\x74\150\x69\163\x20\151\x73\40\x74\145\x73\164\x69\156\x67\40\x6f\156\x6c\171"; echo test['\x74\171\x70\145']; echo range("\x61","\x7a"); ?> 

это нечитаемый код, мне нужна некоторая функция php, которая может конвертировать эти нечитаемые коды в читаемый код .. так будет после этого конвертировать.

 <?php echo "this is testing only"; echo test['type']; echo range("a","z"); ?> 

Я знаю, что могу просто откликнуться на этот шестнадцатеричный текст, чтобы изменить его на читаемую строку, но у меня есть огромный файл php и многофайловый php-файл, который такой же, как этот, поэтому мне нужна функция php, которая может автоматически преобразовать их все в читаемый код.

Спасибо ..

Кажется, ваш код запутан не только с шестнадцатеричными escape-последовательностями, но и с восьмеричным. Я написал эту функцию для ее декодирования:

 function decode_code($code){ return preg_replace_callback( "@\\\(x)?([0-9a-f]{2,3})@", function($m){ return chr($m[1]?hexdec($m[2]):octdec($m[2])); }, $code ); } 

Смотрите здесь в действии: http://codepad.viper-7.com/NjiL84

У меня был смешанный контент, где кроме гексагона и окта были также обычные символы.

Поэтому, чтобы обновить код Шона выше, я добавил следующее

 function decode_code($code) { return preg_replace_callback('@\\\(x)?([0-9a-f]{2,3})@', function ($m) { if ($m[1]) { $hex = substr($m[2], 0, 2); $unhex = chr(hexdec($hex)); if (strlen($m[2]) > 2) { $unhex .= substr($m[2], 2); } return $unhex; } else { return chr(octdec($m[2])); } }, $code); } 

Пример строки

 "\152\163\x6f\x6e\137d\x65\143\157\x64e" 

Декодированный выход

 "json_decode" 

Для этого вы можете использовать собственную функцию urldecode () PHP. Просто передайте шестнадцатеричную кодированную строку в функцию, а вывод будет строкой в ​​читаемом формате.

Вот пример кода для демонстрации:

 <?php echo urldecode("\x74\150\x69\163\x20\151\x73\40\x74\145\x73\164\x69\156\x67\40\x6f\156\x6c\171"); ?> 

Это должно выводиться: это только тестирование

– ищущие01