Итак, у меня есть массив с целыми числами (преобразованный из файла Hex Hex) и вам нужно вывести его как двоичный.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
Извините, не выяснил, для чего это. Я читаю индексный HEX-файл (скомпилированный встроенный C), который передается в 1k-блоках на устройство GSM для обновления прошивки. Получаемый двоичный файл накачивается непосредственно на флешку на устройстве и перезагружается после завершения. –
нашел проблему, она думает ... я был глупым. используется intval() для преобразования шестнадцатеричных значений вместо hexdec(). должен работать сейчас. –