Как преобразовать шестнадцатеричное представление данных в двоичные данные в PHP? - PullRequest
11 голосов
/ 08 апреля 2010

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

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

Например:

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

Как мне вернуть его в "привет"?

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

Функция hex2bin() отсутствует.

Ответы [ 3 ]

16 голосов
/ 08 апреля 2010

Если вы посмотрите на страницу bin2hex в PHP , есть предложения, в том числе следующие:

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

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

5 голосов
/ 08 апреля 2010

Попробуйте pack("H*",$foo).

http://us3.php.net/manual/en/function.pack.php

4 голосов
/ 17 июля 2014

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

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

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

string(16) "example hex data"

Получено со страницы PHP hex2bin .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...