$path = PUBLIC_DIR.\'/images/\'; //待压缩文件夹父目录
$zipPath = PUBLIC_DIR.\'/images_zip/\'; //压缩文件保存目录
!is_dir($zipPath) ? mkdir($zipPath, 0755, true) : \'\';
// Initialize archive object
$zip = new ZipArchive();
$dir_list = scandir($path);
if (empty($dir_list)) {
return false;
}
foreach($dir_list as $dir_name) {
if ($dir_name == \'.\' || $dir_name == \'..\') {
continue;
}
$dir_path = $path.$dir_name; //待压缩目录
if (!is_dir($dir_path)) {
continue;
}
$zipFile = $zipPath.$dir_name.\'.zip\'; //压缩包名称
$zip->open($zipFile, ZipArchive::CREATE | ZipArchive::OVERWRITE);
$file_list = scandir($dir_path); //文件名
foreach ($file_list as $file_name) {
if ($file_name == \'.\' || $file_name == \'..\') {
continue;
}
$zip->addFile($dir_path.\'/\'.$file_name, $file_name); //第二个参数使压缩文件名为待压缩文件原名(否则压缩包里会有多级目录)
}
$zip->close();
}
待压缩文件夹:
压缩后压缩包:
打开压缩包看效果: