我有一個二進制文件,都是8位整數。我試圖使用php unpack()函數,但我不能得到任何參數爲1字節整數工作。我試圖將數據與一個虛擬字節結合起來,以便我可以使用'n'/'v'參數。我正在使用Windows機器來做到這一點。最終,我想要一個函數返回一個基於8位二進制整數字符串的整數數組。我已經試過代碼如下 -PHP - 讀取8位整數
$dat_handle = "intergers.dat";
$dat_file = fopen($dat_handle, "rb");
$dat_data = fread($dat_file, 1);
$dummy = decbin(0);
$combined = $dummy.$dat_data;
$result = unpack("n", $combined);
'「n」'無符號短 - 16位。當然,讀取8位int將會失敗,如果你將它讀作16位int;)。嘗試'解壓縮(「c」,$合併);' – 2011-04-29 02:35:16
@Frank他的想法實際上是健全的(假設無符號數據),他的執行是錯誤的。當他應該預先加入'chr(0)'時,他預先設置'0'。這就是說,這仍然是錯誤的做法! – 2011-04-29 03:01:03
你是對的:decbin返回一個包含字符「0」的PHP字符串,這根本不是他想要的。 – 2011-04-29 03:09:14