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