PHP fopen没有得到整个文件

时间:2015-12-31 12:20:06

标签: php file

我正在尝试用PHP读取3MB文件。我使用fopen来获取句柄,然后阅读它。但是当我在读取~1 / 2文件后调用fread时,它会停止读取,并且我的解包函数会抛出一个错误,说它有0个字节。有什么想法吗?

这是我的二进制阅读功能:

function binaryReadUShort($f){
      return unpack("S",fread($f,4))[1];
      }

这是读取高度图的代码。 $ fh是文件句柄。

  for($y = 0; $y < $size; $y++){
      for($x = 0; $x < $size; $x++){
        $height = binaryReadUShort($fh);
        $height = $height / 65535;
        $height = $height * 255;

        $color_alloc = imagecolorallocate($img,$height,$height,$height);
        imagesetpixel($img,$x,$y,$color_alloc);
      }
  }

此外,filesize()返回文件中正确的字节数,我做了一个测试,其中我计算了我正在阅读的字节数。我确认我没有尝试阅读文件的末尾。

1 个答案:

答案 0 :(得分:1)

如果没有进一步的信息,我认为最好的猜测是你想要读取2字节的无符号短路 - &gt;

fread($f,2)