php如何解压十六进制数据

Posted

技术标签:

【中文标题】php如何解压十六进制数据【英文标题】:Php how to unpack hexadecimal data 【发布时间】:2011-03-09 03:39:13 【问题描述】:

我有这个:

0xC1 0x3A 0x00 0x01 0x5D 0xDA 0x47 0x53 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00, 0x00 0x00
0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
0x00 0x00 0x00 0x00 0xF0 0xFC 0x12 0x00 0x00 0x00

struct FileInfo 
    unsigned char header;
    unsigned char size;
    unsigned char type;
    unsigned char subtype;
    unsigned short item;
    char itemName[50];
    unsigned short ItemCode;

我尝试使用 unpack(),但没有成功

【问题讨论】:

怎么不成功? var_dump(unpack("cheader/csize/ctype/csubtype/Sitem", $data));我不知道如何解压 char itemName[50] 【参考方案1】:

要解压所有内容,您可以使用以下命令:

$unpackedData = unpack('cheader/csize/ctype/csubtype/Sitem/c50itemName/SitemCode', $binData);

【讨论】:

@Matt Jr.:那么你的输入不符合上面的结构。数据不足。

以上是关于php如何解压十六进制数据的主要内容,如果未能解决你的问题,请参考以下文章

如何在node js中解压二进制数据

PHP如何解压Apple APNS反馈数据

PHP如何将从二进制文件中读取的字节转换为数字

怎样在PHP中把16进制HEX数据转换为2进制数据呢?

使用 PHP 解压大型机压缩十进制 (BCD)

php编程:将26位字母进制转换为10进制数字,如何做?