如何在 PHP 中解压缩二进制字符串?

Posted

技术标签:

【中文标题】如何在 PHP 中解压缩二进制字符串?【英文标题】:How do I unpack a binary string in PHP? 【发布时间】:2010-04-21 16:49:54 【问题描述】:

如何在 php 中编写 Perl 代码?

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

【问题讨论】:

PHP 的 pack 实现似乎缺少 B* 【参考方案1】:

由于 PHP 中的 pack/unpack 不支持 B 类型,您必须使用 PHP 的其他函数来代替。在这种情况下,dechexbindec

echo dechex( bindec( "00000000100000012000000" ));

编辑:或者使用 base_convert 在单个函数中完成:

echo base_convert("00000000100000012000000", 2, 16);

【讨论】:

也得到了来自 devshed forums.devshed.com/php-development-5/…的不同答案 我意识到这是一个老问题,但我相信这仅限于 32 位或 64 位字符串。有没有办法对任意大字符串执行此操作?是否有相反的过程?

以上是关于如何在 PHP 中解压缩二进制字符串?的主要内容,如果未能解决你的问题,请参考以下文章

如何在php中解压缩zip文件[重复]

使用 Ruby 从二进制字符串中解包一点

PHP:从二进制数据流中解压缩32位整数

如何在 Perl 中解压缩双精度值?

如何在 ruby​​ 中解压缩大于 64 位的数字?

如何在 64 位 Perl 中解压缩(64 位)无符号长整数?