如何使用 PHP 提取多部分 zip 文件?

Moh*_*lam 5 php unzip

我使用了这段代码{来自:用 php 解压文件}

$zip = new ZipArchive;
$res = $zip->open('file.zip');
if ($res === TRUE) {
  $zip->extractTo('/myzips/extract_path/');
  $zip->close();
  echo 'woot!';
} else {
  echo 'doh!';
}
Run Code Online (Sandbox Code Playgroud)

但它不适用于多部分 zip 文件。我的文件的名称是

file.zip
file.z01
file.z02 
This's for example :)
Run Code Online (Sandbox Code Playgroud)

*注意:我无法运行 shell 命令,因为我使用共享托管 {替代 PHP exec() 函数}

And*_*rew 1

我是这样做的......就我而言,我说:

  • 文件.zip.001
  • ...
  • 文件.zip.006

此设置是运行命令的结果7z a -tzip -v5M Split/file file.zip,该命令基本上只是将文件分割成大小约为 5M 的可串联文件...

这段代码将它们合并在一起,特别感谢这个答案的一些帮助:

<?php

for ($i = 1; $i <= 6; ++$i)
{
  $content = file_get_contents("file.zip.00" . $i);
  file_put_contents("file.zip", $content, FILE_APPEND);
}

echo "Merged! Make sure to delete...";

?>
Run Code Online (Sandbox Code Playgroud)

显然,请确保“file.zip”不存在或事先为空......

然后,为了解压缩它,我运行了以下命令:

<?php

$zip = new ZipArchive;
if ($zip->open("file.zip") === TRUE)
{
  $zip->extractTo("folder/");
  $zip->close();
  echo "Unzipped!";
}
else
{
  echo "Failed...";
}

?>
Run Code Online (Sandbox Code Playgroud)