php - 使用 PHP 将大 zip 部分解压到文件夹中

标签 php gzip unpack

我正在尝试解压缩一个可能包含超过 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/

相关文章:

php - 这安全吗? ADOdb 准备语句

php - 从最近插入的数据库条目的特定行获取信息

java - Jetty 9 和 GzipHandler

solr - gzip 压缩在 Solr 5.1 中不起作用

python - 解包 TCP 片段给出不正确的结果

php - 图像/pjpeg 和图像/jpeg

php - 获取具有最新时间的行mysql codeigniter

java - 带有 Java : Is there a limit? 的 Zip 文件

python - 为什么解包结构会产生元组?

ruby - 使用 Ruby 从二进制字符串中解压一点