I want to convert normal text to \\x codes for e.g \\x14\\x65\\x60
For example :
normal text = \"base64_decode\"
converted \\x codes for above text =
For an alternative to dechex(ord())
you can also use bin2hex($char), sprintf('\x%02X') or unpack('H*', $char). Additionally instead of using preg_replace_callback
, you can use array_map
with str_split
.
echo implode(array_map(function($char) {
return '\x' . bin2hex($char);
}, (array) str_split($word)));
echo implode(array_map(function($char) {
return '\x' . implode(unpack('H*', $char));
}, (array) str_split($word)));
echo implode(array_map(function($char) {
return sprintf('\x%02X', ord($char));
}, (array) str_split($word)));
bin2hex
echo implode(array_map(function($char) {
return '\x' . bin2hex($char);
}, (array) str_split('base64_decode')));
Result
\x62\x61\x73\x65\x36\x34\x5f\x64\x65\x63\x6f\x64\x65
unpack
echo implode(array_map(function($char) {
return '\x' . implode(unpack('H*', $char));
}, (array) str_split('base64_decode')));
Result
\x62\x61\x73\x65\x36\x34\x5f\x64\x65\x63\x6f\x64\x65
sprintf
echo implode(array_map(function($char) {
return sprintf('\x%02X', ord($char));
}, (array) str_split('base64_decode')));
Result
\x62\x61\x73\x65\x36\x34\x5f\x64\x65\x63\x6f\x64\x65