• php unzip


    //            $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);
        }
    }




  • 相关阅读:
    【focus-lei 】微服务
    queryURLParams
    时间字符串的处理
    str.charAt()与str[]的区别
    数组去重函数封装
    数组去重的几种方法
    splice与slice区别
    变量与属性名的区别
    parseInt parseFloat Number三者转换的方式
    原生js实现选项卡样式切换的几种方式。
  • 原文地址:https://www.cnblogs.com/akidongzi/p/8931033.html
Copyright © 2020-2023  润新知