我正在尝试解压缩一个可能包含超过 1500 个 pdf 文件的 zip 文件。压缩文件应分段解压到一个文件夹中,以免一次 20mb 文件溢出服务器内存。
我已经找到了一个关于如何分部分解压缩的示例。但是,此方法不会创建可以在其中查看解压文件的目录或其他内容。它只创建一个文件,而不是目录,看起来又是一个新的 zip。
$sfp = gzopen($srcName, "rb");
$fp = fopen($dstName, "w+");
while ($string = gzread($sfp, 4096)) {
fwrite($fp, $string, strlen($string));
}
gzclose($sfp);
fclose($fp);
该函数创建一些看起来像另一个 zip 文件的文件,如上所述。如果我创建要先将其解压到的文件夹并将其用作 $dstName,它会发出警告,指出找不到该文件。此外,当我让它创建一个在目标链接末尾带有“/”的"file"时,它会发出该警告。
使用 opendir 而不是 fopen 不会发出警告,但似乎没有提取任何内容,猜测处理程序的类型错误。
如何将这个大的压缩文件分成部分解压缩到一个文件夹中?
最佳答案
(PK)Zip 和 GZip 是两种完全不同的格式; gzopen
无法打开 zip 存档。
要解压 PKZip 文件,请查看 PHP Zip extension .
关于php - 使用 PHP 将大 zip 部分解压到文件夹中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9980179/