Php 混合结构二进制文件解析

Php 混合结构二进制文件解析,php,binary,Php,Binary,我需要用PHP解析一个二进制ABIF文件。结构如下: 该文件由三个逻辑部分组成。标头固定在前128个字节,其他两部分可以在任何地方,这意味着即使在某些文本或XML数据之间。如何解析这两部分?有什么想法吗 我发现了很多解决如何用其他语言解析ABIF的方法:Python、C、C++、VB、Perl、JavaScript,但PHP却一点也没有。JS中有一个例子: 下面是一个文件示例: 它返回: Array ( [head] => Array ( [header] =&

我需要用PHP解析一个二进制ABIF文件。结构如下:

该文件由三个逻辑部分组成。标头固定在前128个字节,其他两部分可以在任何地方,这意味着即使在某些文本或XML数据之间。如何解析这两部分?有什么想法吗

我发现了很多解决如何用其他语言解析ABIF的方法:Python、C、C++、VB、Perl、JavaScript,但PHP却一点也没有。JS中有一个例子:

下面是一个文件示例:

它返回:

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
    )
)

数据偏移量告诉目录从哪里开始。每个目录条目都有另一个
dataoffset
字段,告诉它的数据从哪里开始。

PDF文档似乎是对文件格式的一个非常清晰的解释。您在编写代码来解析它时遇到了什么问题?我很清楚如何解析头,因为它有固定的位置和大小。如果其他元素的位置因文件而异,如何解析这些元素?我需要使用什么?数据偏移量告诉您目录的起始位置。每个目录条目都有另一个
dataoffset
字段,告诉它的数据从哪里开始。@deji如果您解决了问题,您应该发布问题的答案。
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
    )
)