好吧,所以我有一個整數數組(從英特爾十六進制文件轉換),並需要輸出爲二進制。PHP Array到二進制數據
這裏是文件閱讀器,但我如何將數組轉換回字節流(utf-8)?
$filename = "./latest/firmware.hex";
$file = fopen($filename, "r");
$image = array();
$imagesize = 0;
$count = 0;
$address = 0;
$type = 0;
while(!feof($file))
{
$line = fgets($file);
$count = intval(substr($line,1,2));
$address = intval(substr($line,3,4));
$type = intval(substr($line,7,2));
if($type==0)
{
for ($i=0; $i < $count; $i++) {
$image[$address+1] = intval(substr($line,9+$i*2,2));
if (($address + $i) > $imagesize)
{
$imagesize = $address + $i;
}
}
}
else if($type == 1)
{
break;
}
}
你想打印二進制文件嗎?或者將圖像寫成二進制數據?你的問題不清楚。它看起來像後者,在這裏,但你的問題聽起來像你想要的打印二進制文件。 – sleepynate 2010-09-07 16:38:45
對不起並沒有明確說明這是什麼。我正在讀取一個索引十六進制文件(已編譯的嵌入式C),該文件以1k塊傳輸到GSM設備以更新固件。產生的二進制文件被直接泵入設備的閃存中,並在完成後重新啓動。 – 2010-09-08 05:15:16
發現了這個問題,它認爲...我很笨。使用intval()來轉換十六進制值而不是hexdec()。應該現在工作。 – 2010-09-08 06:04:03