php使用ZipArchive进行压缩目录下文件成zip
1、可以将一个目录下的文件,进行压缩打包成zip。代码函数如下
function zip ($name, $path){
//压缩
if (!file_exists ($path)) {
return false;
}
$current_dir = opendir ($path);
while (($file = readdir ($current_dir)) !== false) {
$sub_dir = $path . DIRECTORY_SEPARATOR . $file;
if ($file == '.' || $file == '..') {
continue;
}
if (is_file ($sub_dir)) { //如果是文件,进行赋值
$files[] = $file;
}
}
if (empty($files)) {
return false;
}
$zip_filename = $path.'/' . $name . '_' . date ('YmdHis') . '.zip';
@unlink ($zip_filename);
if (!file_exists ($zip_filename)) {
touch ($zip_filename);
$zip = new ZipArchive();
$ret = $zip->open ($zip_filename, ZipArchive::OVERWRITE);
if ($ret !== true) {
printf ('Failed with code %d', $ret);
} else {
if (!empty($files)) {
foreach ($files as $file) {
$zip->addFile ($path . '/' . $file, $file);
}
}
$zip->close ();
}
}
return $zip_filename;
}2、调用函数进行打包压缩,第一个参数为zip的文件名前缀,第二个参数为打包目录地址。
zip('files','storage');3、效果如下图,会在打包目录生成zip压缩包

本文作者: Liaodeity
本文链接: https://www.jianbaizhan.com/article/696
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 3.0 许可协议。转载请注明出处!