在PHP中解压缩签名的int32 little-endian

时间:2017-07-18 15:51:13

标签: php unpack endianness int32

我有一个我正在尝试解析的二进制文件。文件的一小部分有一组坐标(纬度和经度)。一个小例子如下:

$data = "64DA7300 0CD5DFFF";

我正试图看到整数,但我还没有运气。

$header = unpack("ilatitud/ilongitude", $data);
print_r($header);

我知道正确的数字应为:(7592548, -2108148),但结果为1094988854, 808465207

有什么想法吗?感谢。

1 个答案:

答案 0 :(得分:3)

$data = "64DA7300 0CD5DFFF";

您的数据不是二进制文件,它是十六进制编码的ascii。首先使它成为二进制文件:

$data = hex2bin(str_replace(" ", "", $data));

然后你的解包就可以了。

Example