2017-07-18 125 views
2

我有一個二進制文件,我試圖解析。該文件的一小部分具有一組座標(經度和緯度)。一個小例子可以如下:在PHP中解壓縮帶符號的int32小端序列號

$data = "64DA7300 0CD5DFFF"; 

而且我想看到的整數,但我有沒有運氣呢。

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

我知道正確的數字應該是:(7592548, -2108148),但結果是1094988854, 808465207

任何想法?謝謝。

+0

它是ADS-B座標?如果我沒有記錯,他們需要的不僅僅是正常的十六進制 - >二進制轉換 – Andreas

+0

它們只是GPS座標,結果需要除以65536才能得到確切的座標。但是,我的問題是轉換..:/ – user143

+0

'$ data =「64DA7300 0CD5DFFF」;'那不是二進制。 – tkausl

回答

3
$data = "64DA7300 0CD5DFFF"; 

您的數據不是二進制的,它是十六進制編碼的ascii。先製作二進制文件:

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

然後你的解壓縮工作。

Example