在PHP中解压大文件可以使用ZipArchive类,具体步骤如下:
- 创建ZipArchive对象并打开要解压的文件;
- 循环读取压缩包中的每个文件并解压缩到指定目录;
- 关闭ZipArchive对象。
-
创建ZipArchive对象并打开要解压的文件:
首先,使用ZipArchive类的构造函数创建一个ZipArchive对象,然后使用ZipArchive对象的open方法打开要解压的文件。示例代码如下:
$zip = new ZipArchive;
$res = $zip->open("example.zip");
if ($res === true) {
// 打开成功
} else {
// 打开失败
}
-
循环读取压缩包中的每个文件并解压缩到指定目录:
使用ZipArchive对象的getNumFiles方法获取压缩包中的文件数量,然后使用for循环逐个读取每个文件并解压缩到指定目录。示例代码如下:
$numFiles = $zip->getNumFiles();
for ($i = 0; $i < $numFiles; $i++) {
$filename = $zip->getNameIndex($i);
$fileinfo = pathinfo($filename);
$filedir = "unzip_dir/" . $fileinfo["dirname"];
if (!is_dir($filedir)) {
mkdir($filedir, 0777, true);
}
$zip->extractTo($filedir, $filename);
}
-
关闭ZipArchive对象:
最后,使用ZipArchive对象的close方法关闭ZipArchive对象。示例代码如下:
$zip->close();