Как преобразовать шестнадцатеричное представление данных в двоичные данные в PHP?

Я знаком с php-функцией bin2hex() для преобразования двоичных данных в шестнадцатеричное представление.

Однако какова функция дополнения для преобразования шестнадцатеричного представления данных обратно в двоичные данные?

Например:

$foo = "hello";
$foo = bin2hex($foo);
echo $foo; // Displays 68656c6c6f

Как мне вернуться к приветствию?

$foo = "68656c6c6f";
// Now what?

Нет функции hex2bin().

Ответ 1

Если вы посмотрите страницу PHP bin2hex, там предлагаются решения, включая этот:

$foo = pack("H*" , $foo);
echo $foo;

Существуют также различные реализации hex2bin, которые вы можете выбрать.

Ответ 3

Для тех, у кого есть PHP 5.4 и выше, есть стандартный способ сделать это:

<?php $bin = hex2bin("6578616d706c65206865782064617461"); var_dump($bin); ?>

Вывод кода выше должен быть похож на:

string(16) "example hex data"

Отключить PHP hex2bin page.