文档章节

php unzip

o
 osc_x4h57ch8
发布于 2018/04/24 15:35
字数 168
阅读 0
收藏 0

精选30+云产品,助力企业轻松上云!>>>

//            $zip = new ZipArchive;
//            $res = $zip->open($filePath);
//            if ($res === TRUE) {
//                \Log::info("unzip success");
//                //解压缩到test文件夹
//                $zip->extractTo('data');   // trans-10001-20180419-xls.zip
//                $zip->close();
//            } else {
//                \Log::info('failed, code:' . $res);
//            }

 

if (!function_exists('unZip')) {
    function unZip($dir)
    {
        $zip = zip_open($dir);
        $dirnames = dirname($dir);

        if ($zip) {
            while ($zip_entry = zip_read($zip)) {
                if (zip_entry_open($zip, $zip_entry, "r")) {
                    $buf = zip_entry_read($zip_entry, zip_entry_filesize($zip_entry));    // 读取zip文件, 并制定读取的长度

                    $fname = $dirnames . '/' . zip_entry_name($zip_entry);
                    if (is_dir($fname))                                           // 如果是目录则创建目录(目录是未创建的)
                    {
                        mk_dir($dirnames . '/' . zip_entry_name($zip_entry));
                    } else                                                         // 是文件
                    {
                        mk_dir(dirname($fname));
                        file_put_contents($fname, $buf);                          // 将读取到的内容直接写入文件
                    }
                    zip_entry_close($zip_entry);
                }
            }
            zip_close($zip);
        }
    }
}

if (!function_exists('mk_dir')) {
    // 循环创建目录
    function mk_dir($dir, $mode = 0777)
    {
        if (is_dir($dir) || @mkdir($dir, $mode)) {
            return true;
        }
        if (!mk_dir(dirname($dir), $mode)) {
            return false;
        }
        return @mkdir($dir, $mode);
    }
}

 




o
粉丝 0
博文 500
码字总数 0
作品 0
私信 提问
加载中
请先登录后再评论。

暂无文章

设计模式(4) 建造者模式

什么是建造者模式 经典建造者模式的优缺点 对建造者模式的扩展 什么是建造者模式 建造者模式将一个复杂的对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。创建者模式隐藏了...

zhixin9001
32分钟前
14
0
ArrayList源码分析 —— JDK8

ArrayList的特性 ArrayList内部使用数据作为存储结构,ArrayList可以理解为数组的扩展对象,封装了常用的和非常用的操作数组的方法。以及当数组长度不足以保存数组时,自动扩容数组,通常Arr...

XuePeng77
38分钟前
40
0
__slots__的用法? - Usage of __slots__?

问题: Python中__slots__的目的是什么-尤其是关于何时以及何时不使用它的目的? 解决方案: 参考一: https://stackoom.com/question/1ymu/slots-的用法 参考二: https://oldbug.net/q/1ym...

富含淀粉
49分钟前
17
0
Python分析42年高考数据,告诉你高考为什么这么难?

作者:徐麟 历年录取率 可能很多经历过高考的人都不知道高考的全称,高考实际上是普通高等学校招生全国统一考试的简称。从1977年国家恢复高考制度至今,高考经历了许多的改革,其中最为显著的...

爱码小哥
51分钟前
27
0
CKEditor 5 + SpringBoot实战(四):SpringBoot 实现文件上传

在本系列的文章中,我将介绍如何在Spring Boot Application中使用CKEditor编辑器。介绍的内容包括基本环境的搭建,文件上传,SpringData JPA数据持久化,CKEditor5的安装,CKEditor图片上传,...

树下魅狐
53分钟前
20
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部