Мне нужно проанализировать двоичный файл ABIF в PHP.Есть структура: https://projects.nfstc.org/workshops/resources/articles/ABIF_File_Format.pdf
Файл состоит из трех логических частей.Заголовок фиксируется на первых 128 байтах, остальные две части могут быть где угодно, это означает даже между некоторыми текстовыми или XML-данными.Как разобрать эти две части?Любые идеи?
Я нашел много решений, как анализировать ABIF на других языках: Python, C, C ++, VB, Perl, JavaScript, но ничего о PHP.Пример в JS: https://github.com/eamitchell/ab1ToJSON
Пример файла: https://sourceforge.net/p/seqmanager/code-0/1/tree//cgi-bin/ABIveiw/test.ab1
$filename = 'files/2p_Pro_1.ab1';
$handle = fopen($filename, 'rb');
$size = filesize ($filename);
$data = fread($handle, 6);
$data = unpack('a4header/nver', $data);
$result['head'] = $data;
$data = fread($handle, 28);
$data = unpack('a4name/Nnumber/nelementtype/nelementsize/Nnumelements/Ndatasize/Ndataoffset/Ndatahandle', $data);
$result['dir'] = $data;
var_dump($result);
Возвращает:
Array (
[head] => Array (
[header] => ABIF
[ver] => 101
)
[dir] => Array (
[name] => tdir
[number] => 1
[elementtype] => 1023
[elementsize] => 28
[numelements] => 165
[datasize] => 4928
[dataoffset] => 245963
[datahandle] => 0
)
)