gpt4 book ai didi

php - 在 PHP 中使用 gzip 解压大文件

转载 作者:行者123 更新时间:2023-12-03 00:24:33 25 4
gpt4 key购买 nike

我对我的文件使用了一个简单的解压缩函数(如下所示),因此在进一步处理文件之前我不必手动解压缩文件。

function uncompress($srcName, $dstName) {
$string = implode("", gzfile($srcName));
$fp = fopen($dstName, "w");
fwrite($fp, $string, strlen($string));
fclose($fp);
}

问题是,如果 gzip 文件很大(例如 50mb),则解压缩需要大量内存来处理。

问题:我可以分块解析 gzip 压缩文件并仍然得到正确的结果吗?或者是否有更好的其他方法来处理提取大型 gzip 文件的问题(即使需要多花几秒钟)?

最佳答案

gzfile() 是一个调用 gzopen、gzread 和 gzclose 的便捷方法。

所以,是的,您可以手动执行 gzopen 和 gzread 分块文件。

这将以 4kB block 的形式解压缩文件:

function uncompress($srcName, $dstName) {
$sfp = gzopen($srcName, "rb");
$fp = fopen($dstName, "w");

while (!gzeof($sfp)) {
$string = gzread($sfp, 4096);
fwrite($fp, $string, strlen($string));
}
gzclose($sfp);
fclose($fp);
}

关于php - 在 PHP 中使用 gzip 解压大文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1229571/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com