我使用了这段代码{来自:用 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() 函数}
我是这样做的......就我而言,我说:
此设置是运行命令的结果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)