• 技术文章 >后端开发 >php教程

    php文件打压缩包

    不言不言2018-05-09 09:04:49原创1240

    这篇文章主要介绍了关于php文件打压缩包,有着一定的参考价值,现在分享给大家,有需要的朋友可以参考一下

    压缩目录下所有文件

    为了方便以后重用,这里我写了三个函数,必须一起放到一个类下边,读者也可根据情况分开,但请注意更改方法调用的类名(这里都用的self)。

    Question:这里我想只把当前路径下所有文件(包括文件夹)压缩到压缩包里,不想压缩多余的文件夹,不知道该怎么做,有望知情者告知,谢谢!

       /**
         * add path to zip
         * Here, I want to add all the files under the current path, but I don't know how to add it, I want to get help, thank you!
         * @param $path
         * @param $zip
         */
        public static function addDirectoryToZip($path, $zip)
        {
            self::createPath([$path, $zip]);        
            $zipObj = new \ZipArchive();        
            if ($zipObj->open($zip, \ZipArchive::CREATE) === TRUE) {            
            $handler = opendir($path);            
            while (($filename = readdir($handler))) {                
            if ($filename != "." && $filename != "..") {                    
            $tem_path = $path . DIRECTORY_SEPARATOR . $filename;                    
            if (is_dir($tem_path)) {                        
            self::addDirectoryToZip($tem_path, $zip);
                        } else {                        
                        $zipObj->addFromString(iconv('gbk', 'utf-8', $tem_path), file_get_contents($tem_path));
                        }
                    }
                }
                @closedir($path);            
                $zipObj->close();
            }
        }    /**
         * Create a or more path
         * @param $path
         */
        public static function createPath($path)
        {
            if (is_array($path)) {            
            foreach ($path AS $v) {                
            if (!is_array($v)) {                    
            self::createOnePath($v);
                    } else {                    
                    die('Must be a one-dimensional array!');
                    }
                }
            } else {            
            self::createOnePath($path);
            }
        }    /**
         * Create a path
         * @param $path
         */
        public static function createOnePath($path)
        {
            $path = strpos(basename($path), '.') ? dirname($path) : $path;       
             if (!is_dir($path)) {//nonexistion path
                mkdir($path, 0777, true) ? '' : die('Creation path failed!');
            }
        }

    相关推荐:

    几行代码轻松实现PHP文件打包下载zip

    PHP文件加锁确保多线程写入安全

    php入门到就业线上直播课:查看学习

    以上就是php文件打压缩包的详细内容,更多请关注php中文网其它相关文章!

    声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。

    前端(VUE)零基础到就业课程:点击学习

    清晰的学习路线+老师随时辅导答疑

    自己动手写 PHP MVC 框架:点击学习

    快速了解MVC架构、了解框架底层运行原理

    专题推荐:php 压缩 文件
    上一篇:通过php实现复制移动文件的方法 下一篇:自己动手写 PHP MVC 框架(40节精讲/巨细/新人进阶必看)

    相关文章推荐

    • ❤️‍🔥共22门课程,总价3725元,会员免费学• ❤️‍🔥接口自动化测试不想写代码?• 你知道如何用PHP实现多进程吗• PHP与MySQL连接的方法总结• 工具包分享:PHP实现滑块验证图片• php实现mysql数据库分表分段备份_php实例• 找到一个编辑器,但是不知道来得到里面的值!求解解决方案
    1/1

    PHP中文网