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;    
        }    
    } 

你可能感兴趣的:(PHP,压缩,zip)