peiyuan1030 发表于 2017-4-6 11:25:47

php 将文件压缩成zip文件

function create_zip($files = array(),$destination = '',$overwrite = false) {   
//var_dump($files);
//如果zip文件已经存在并且设置为不重写返回false   
if(file_exists($destination) && !$overwrite) { return false; }   
$valid_files = array();      
//获取到真实有效的文件名   
if(is_array($files)) {   
foreach($files as $file) {
//去掉真实名字
$service_file=substr($file,0,strripos($file,'@',0));
$real_name=substr($file,strlen($service_file),strlen($file)-strlen($service_file));
if(file_exists($service_file)) {   
//验证文件再次把真实名字添加进去
$file=$service_file.$real_name;
$valid_files[] = $file;   
}   
}   
}
//如果存在真实有效的文件   
if(count($valid_files)) {   
$zip = new ZipArchive();   
//打开文件       如果文件已经存在则覆盖,如果没有则创建   
if($zip->open($destination,$overwrite ? ZIPARCHIVE::OVERWRITE : ZIPARCHIVE::CREATE) !== true) {   
return false;   
}      
//向压缩文件中添加文件   
foreach($valid_files as $file) {   
$service_file=substr($file,0,strripos($file,'@',0));
$real_name=substr($file,strlen($service_file)+1,strlen($file)-strlen($service_file));
$file=$service_file;
$file_info_arr= pathinfo($file);
$filename =$real_name;   
$zip->addFile($file,$filename);   
}      
//关闭文件   
$zip->close();   
//检测文件是否存在   
return file_exists($destination);   
}else{   
//如果没有真实有效的文件返回false   
return false;   
}   
}
页: [1]
查看完整版本: php 将文件压缩成zip文件