У меня есть строка вроде этого:
[0-9A-Za-z\+/=]*
Как я могу преобразовать в следующем виде:
"\133\x30\55\x39\101\x2d\132\x61\55\x7a\134\x2b\57\x3d\135\x2a"
Есть ли какая-нибудь функция для этого?
function strtohex($string) { $string = str_split($string); foreach($string as &$char) $char = "\x".dechex(ord($char)); return implode('',$string); } print strtohex("[0-9A-Za-z\+/=]*");
Вышеприведенный код даст вам
\x5b\x30\x2d\x39\x41\x2d\x5a\x61\x2d\x7a\x5c\x2b\x2f\x3d\x5d\x2a
Я знаю, что это не похоже на результат, который вы ожидаете, но это, похоже, не является строкой в hex.
Если вы хотите выполнить обфускацию строки, используйте что-то вроде подхода @Kristians. И вы можете чередовать между двумя методами кодирования, например:
$char = (++$i%2) ? "\x".dechex(ord($char)) : "\\".decoct(ord($char));