【问题标题】:`Type L: not enough input` when to unpack the target data`Type L: not enough input` 何时解压目标数据
【发布时间】:2015-04-29 11:50:59
【问题描述】:

在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);
?>

我得到了结果,最后一个错误仍然存​​在,无法自行解决。
1.为什么 unpack(): Type L: 没有足够的输入,需要 4,有 0 ?
2.如何解决?

【问题讨论】:

    标签: php unpack


    【解决方案1】:

    将循环更改为:

    while ($bytes = fread($handle, 32)) {
        print_r(unpack("La/fb/fc/fd/fe/ff/fg/fh",$bytes));
        echo "<br/>";
    }
    

    feof($handle) 直到在您尝试读取文件末尾之后才变为真。

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

    【讨论】:

      猜你喜欢
      • 2015-07-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-12-06
      • 1970-01-01
      • 2020-05-30
      • 2011-12-31
      相关资源
      最近更新 更多