`Тип L: недостаточно ввода` при распаковке целевых данных

Я выполнил работу по анализу данных из целевого файла в двоичной форме с помощью друзей 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. почему распаковка (): тип L: недостаточно ввода, нужно 4, есть 0?
2. как это исправить?

введите описание изображения здесь

0

Решение

Измените ваш цикл на:

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

feof($handle) не становится правдой, пока после Вы пытались прочитать в конце файла.

Таким образом, вы выполняете дополнительную fread(), который возвращает false, а затем пытается распаковать пустую строку байтов.

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]