欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

php 将文件压缩成zip文件 博客分类: php phpzip压缩

程序员文章站 2024-03-24 17:54:22
...
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 压缩