Как распаковать двоичную строку в PHP?

Как я могу сделать этот код Perl в PHP?

 print unpack ("H*", pack ("B*", "00000000100000012000000" ));

person Fernando André    schedule 21.04.2010    source источник
comment
В реализации PHP pack отсутствует B*.   -  person ceejayoz    schedule 21.04.2010


Ответы (1)


Поскольку упаковка/распаковка в PHP не поддерживает тип B, вместо этого вам придется использовать другие функции PHP. В этом случае dechex и bindec.

echo dechex( bindec( "00000000100000012000000" ));

Изменить: или сделать это в одной функции с base_convert:

echo base_convert("00000000100000012000000", 2, 16);
person Powerlord    schedule 21.04.2010
comment
также получил другой ответ от форумов devshed .devshed.com/php-development-5/ - person Fernando André; 29.04.2010
comment
Я понимаю, что это старый вопрос, но я считаю, что он ограничен 32-битными или, может быть, 64-битными строками. Есть ли способ сделать это для произвольной большой строки? и есть ли обратный процесс? - person Chris Wheeler; 06.04.2017