`Type L: not enough input` 何时解压目标数据
`Type L: not enough input` when to unpack the target data
在 Whosebug 的朋友的帮助下,我完成了从目标文件中以二进制形式解析数据的工作。
<?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.why unpack(): 类型 L:输入不足,需要 4 个,有 0 个 ?
2.how 修复它?
将循环更改为:
while ($bytes = fread($handle, 32)) {
print_r(unpack("La/fb/fc/fd/fe/ff/fg/fh",$bytes));
echo "<br/>";
}
feof($handle)
直到 在 您尝试读取文件末尾后才会变为真。
因此您正在执行额外的 fread()
,即 returns false
,然后尝试解压缩一个空字节字符串。
在 Whosebug 的朋友的帮助下,我完成了从目标文件中以二进制形式解析数据的工作。
<?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.why unpack(): 类型 L:输入不足,需要 4 个,有 0 个 ?
2.how 修复它?
将循环更改为:
while ($bytes = fread($handle, 32)) {
print_r(unpack("La/fb/fc/fd/fe/ff/fg/fh",$bytes));
echo "<br/>";
}
feof($handle)
直到 在 您尝试读取文件末尾后才会变为真。
因此您正在执行额外的 fread()
,即 returns false
,然后尝试解压缩一个空字节字符串。