首先定义获取本地文件列表的方法
function list_dir($dir){
$result = array();
if (is_dir($dir)){
$file_dir = scandir($dir);
foreach($file_dir as $file){
if ($file == '.' || $file == '..'){
continue;
}
elseif (is_dir($dir.$file)){
$result = array_merge($result, list_dir($dir.$file.'/'));
}
else{
array_push($result, $dir.$file);
}
}
}
return $result;
}
然后$datalist=list_dir(‘./’.文件夹名字.’/’);
定义压缩包名字
$zipfile = 压缩包名字.”.zip”;
//如果没有生成ZIP压缩包的文件名需要重新生成
if(!file_exists($zipfile)){
//重新生成文件
$zip = new ZipArchive();//使用本类,linux需开启zlib,windows需取消php_zip.dll前的注释
if ($zip->open($zipfile, ZIPARCHIVE::CREATE)!==TRUE) {
exit(‘无法打开文件,或者文件创建失败’);
}
foreach( $datalist as $val){
if(file_exists($val)){
$zip->addFile( $val, basename($val));//第二个参数是放在压缩包中的文件名称,如果文件可能会有重复,就需要注意一下
}
}
$zip->close();//关闭
}
//向生成的压缩包内添加文本文件
$zip=new ZipArchive;
$res=$zip->open($dname.’.zip’,ZipArchive::CREATE);
if($res===TRUE){
$zip->addFromString(‘elvns.txt’,’欢迎使用互动精灵服务’);
$zip->close();
print(‘执行成功’);
}else{
echo ‘执行失败’;
}
这样就成功将制定的文件夹打包成ZIP压缩包了