php中把文件压缩为zip格式可以使用php的zip
扩展实现。
版本要求
PHP >= 5.2.0
实例
/**
* @apiDescription 压缩打包zip
* @param $saveDir
* @param $zipName
*/
protected function packToZip($saveDir, $zipName)
{
// 验证压缩文件是否已存在?存在则删除
if(file_exists($zipName)) {
unlink($zipName);
}
$zip = new \ZipArchive();
if($zip->open($zipName, \ZipArchive::CREATE) === TRUE) {
$this->addFileToZip($saveDir, $zip,$saveDir); //调用方法,对要打包的根目录进行操作,并将ZipArchive的对象传递给方法
$zip->close(); //关闭处理的zip文件
}
return ;
}
/**
* @apiDescription 往zip中添加文件
* @param $path 需压缩的文件路径
* @param $zip zip对象
*/
protected function addFileToZip($path, $zip){
$handler = opendir($path);
while(($filename = readdir($handler)) !== false) {
if($filename != "." && $filename != "..") { //文件夹文件名字为'.'和‘..’,不要对他们进行操作
if(is_dir($path . $filename)) { // 如果读取的某个对象是文件夹,则递归
self::addFileToZip($path . $filename . DS, $zip);
} else { //将文件加入zip对象
$zip->addFile($path.$filename);
}
}
}
@closedir($handler);
return ;
}
网友评论