/**
* 总接口
* @param $dir_path 需要压缩的目录地址(绝对路径)
* @param $zipName 需要生成的zip文件名(绝对路径)
*/
function zip($dir_path,$zipName){
$relationArr = [$dir_path=>[
'originName'=>$dir_path,
'is_dir' => true,
'children'=>[]
]];
modifiyFileName($dir_path,$relationArr[$dir_path]['children']);
$zip = new ZipArchive();
$zip->open($zipName,ZipArchive::CREATE);
zipDir(array_keys($relationArr)[0],'',$zip,array_values($relationArr)[0]['children']);
$zip->close();
restoreFileName(array_keys($relationArr)[0],array_values($relationArr)[0]['children']);
}
/**
* 递归添加文件进入zip
* @param $real_path 在需要压缩的本地的目录
* @param $zip_path zip里面的相对目录
* @param $zip ZipArchive对象
* @param $relationArr 目录的命名关系
*/
function zipDir($real_path,$zip_path,&$zip,$relationArr){
$sub_zip_path
php压缩文件夹(整理最新版)
关注
打赏