PHP Array для двоичных данных - PullRequest
0 голосов
/ 07 сентября 2010

Хорошо, у меня есть массив с целыми числами (преобразованный из файла Intel Hex), и мне нужно вывести его в двоичном виде.

Вот программа чтения файлов, но как мне преобразовать массив обратно в поток байтов (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;
    }
}

1 Ответ

2 голосов
/ 07 сентября 2010
  • Шаг 1: Используйте chr(), чтобы получить символ из значения ascii.

  • Шаг 2: Используйте fwrite() для записи двоичных данных в файл.

Возможно, вы захотите собрать его в буфер перед записью в файл.Строки PHP могут безопасно содержать нули.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...