class="java" name="code"> 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; } }