PHP строка в hex

у меня есть такая строка:

[0-9A-Za-z+/=]*

Как я могу преобразовать в следующий вид:

"3x30x391x2d2x61x7a4x2bx3d5x2a"

есть ли функция для этого ?

2 ответов


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));