关键词
PHP ZIP 压缩 文件夹
摘要
PHP调用ZipArchive来压缩文件或文件夹,效果一般,已测试基本可用。
代码如下:
function z_addDir2Zip($dir, $zip){ $handler = opendir($dir); //打开当前文件夹由$dir指定 while(( $filename = readdir($handler) ) !== false ){ if($filename != "." && $filename != ".."){//文件夹文件名字为'.'和‘..',不要对他们进行操作 if(is_dir( $dir . '/' . $filename )){// 如果读取的某个对象是文件夹,则递归 z_addDir2Zip( $dir . "/" . $filename, $zip); }else{ //将文件加入zip对象 $zip->addFile($dir."/".$filename); } } } @closedir($dir); }
function z_zipdir( $dir, $zipfile ){ $zip = new ZipArchive(); if($zip->open($zipfile, ZipArchive::OVERWRITE)=== TRUE){ z_addDir2Zip( $dir, $zip ); //调用方法,对要打包的根目录进行操作,并将ZipArchive的对象传递给方法 $zip->close(); //关闭处理的zip文件 } }
最后压缩出来的zip文件,点开之后会看到有可能包含了几级目录。比如你压缩的abc/cde/fgh目录,则在压缩包里面也会看到这三级目录。