我有一个gzip压缩文本文件,我试图在PHP中读取(使用gzopen / gzgets)。该文件有点大,大约158,000行。该脚本工作正常,除非它到达文件的第157,237行,它读取部分行,然后就像它到达EOF一样。我能够解压缩文件并确认文件的其余部分确实存在。我写了一个简单的脚本来测试:
<?php
$handle = gzopen('/path/to/file.gz','r');
while(true) {
echo gzgets($handle,4096);
}
?>
它读完所有内容然后突然到达这一行并打印出来:
GUAN XIN 508|R34745|CH|CGO|100|
,没有别的。它只是坐在那里[非无限循环版本退出while(!gzeof($ handle))]
如果我压缩文件并转到该行,我会看到:
GUAN XIN 508|R34745|CH|CGO|100| | | | |BEGS| | | | |133|19| | | | | | | | | | | | |413669000|1|
所以数据就在那里。我不知道zlib函数是否存在某种大小限制?
更新:我通过'cat -vet'来寻找特殊角色......没有。
答案 0 :(得分:1)
将zlib更新为1.2.7。我们运行的是1.2.3,&#34;大文件&#34;显然在1.2.4中添加了支持。