Php `类型L:输入不足`何时解压缩目标数据

Php `类型L:输入不足`何时解压缩目标数据,php,unpack,Php,Unpack,在stackoverflow朋友的帮助下,我完成了以二进制形式解析目标文件中的数据的工作 <?php $handle = fopen('data', 'rb'); fread($handle,64); while (!feof($handle)) { $bytes= fread($handle,32); print_r(unpack("La/fb/fc/fd/fe/ff/fg/fh",$bytes)); echo "&

在stackoverflow朋友的帮助下,我完成了以二进制形式解析目标文件中的数据的工作

<?php
    $handle = fopen('data', 'rb');
    fread($handle,64);
    while (!feof($handle)) {
        $bytes= fread($handle,32);
        print_r(unpack("La/fb/fc/fd/fe/ff/fg/fh",$bytes));
        echo "<br/>";
        }
    echo "finish";
    fclose($handle);
?>

我得到的结果是,这里还有最后一个无法解决的bug。
1.为什么解包():类型L:输入不足,需要4,有0?
2.如何修复

将循环更改为:

while ($bytes = fread($handle, 32)) {
    print_r(unpack("La/fb/fc/fd/fe/ff/fg/fh",$bytes));
    echo "<br/>";
}
while($bytes=fread($handle,32)){
打印(解包(“La/fb/fc/fd/fe/ff/fg/fh”,美元字节));
回声“
”; }
feof($handle)
只有在您尝试读取文件末尾的内容后才会变为真

因此,您正在执行一个额外的
fread()
,它返回
false
,然后尝试解压缩一个空字节字符串