php Zip扩展

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 ;
    }
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,881评论 18 139
  • 关于Mongodb的全面总结 MongoDB的内部构造《MongoDB The Definitive Guide》...
    中v中阅读 32,010评论 2 89
  • 上周末公司于苏州开年会,因为要向全部来宾介绍产品及推广经验,鼓舞下级代理商的士气及积极性,承蒙老板看重,让我来讲;...
    大否哥阅读 798评论 1 0
  • 图片来源网络,您可以在微信公众号搜索”每周微课(meizhouweike)”关注我们,“每周微课”是专业的妈妈学习...
    每周微课阅读 657评论 0 1
  • 是夏日里奔波轻跳,遇上一池碧水莲花,跃上岸边小舟,在莲花丛里肆意捧摘莲子,在摘下第一株荷叶作帽,在缝中瞧见了...
    吳旋豬阅读 227评论 0 0