你知道在 php 中解压大型 .gz 的任何解决方案吗(>200 MB .gz,>4GB 原始文件...可能是 >1GB 或 >2GB 的包)?
需要逐部分解码.gz的解决方案。
代码
gzdecode(@file_get_contents($file))
出现 PHP 错误:
PHP 致命错误:允许的内存大小 268435456 字节已耗尽(尝试分配...
当然。
我无法增加网络服务器的 PHP 内存限制,并且当数据 >>1GB 时尝试似乎没有意义。
使用 inflate_add() 不是解决方案,它会生成相同的“PHP 致命错误:允许的内存大小...耗尽...”。
使用
gzopen()
而不是 gzdcode()
。然后您可以使用 gzread()
一次读取小块内容。
就在这里,我的错误可能会有所不同,但谷歌首先显示了这个页面。所以对于来这里的人来说:
'gzdecode():内存不足'
在我的例子中,这是由于错误放置的布尔值告诉 gzdecode 解码的长度将为 1。