/***@desc  生成zip压缩文件的函数**@param $dir             string 需要压缩的文件夹名*@param $filename     string 压缩后的zip文件名  包括zip后缀*@param $missfile      array   不需要的文件*@param $fromString  array   自定义压缩文件*/
public function zip($dir,$filename,$missfile=array(),$addfromString=array())
{$profixPath         = substr($filename,0,5);if(!file_exists($dir) || !is_dir($dir)){die(' can not exists dir '.$dir);}if(strtolower(end(explode('.',$filename))) != 'zip'){die('only Support zip files');}$dir = str_replace('\\','/',$dir);$filename = str_replace('\\','/',$filename);$filename = iconv('utf-8','gb2312',$filename);if(file_exists($filename)){die('the zip file '.$filename.' has exists !');}if (!is_dir($profixPath)){mkdir($profixPath);}$files = array();$this->getfiles($dir,$files);$files    = $this->array_iconv($files);if(empty($files)){die(' the dir is empty');}$zip = new \ZipArchive();$res = $zip->open($filename, \ZipArchive::CREATE);if ($res === TRUE) {foreach($files as $v){if(!in_array(str_replace($dir.'/','',$v),$missfile)){$zip->addFile($v,str_replace($dir.'/','./',$v));}}if(!empty($addfromString)){foreach($addfromString as $v){$zip->addFromString($v[0],$v[1]);}}$zip->close();echo 'ok';} else {echo 'failed';}
}
//定义图片字符集
public function array_iconv($data, $in_charset='GBK', $out_charset='UTF-8')
{if (!is_array($data)) {$output = iconv($in_charset, $out_charset, $data);} elseif (count($data) === count($data, 1)) {//判断是否是二维数组foreach ($data as $key => $value) {$output[$key] = iconv($in_charset, $out_charset, $value);}} else {eval_r('$output = ' . iconv($in_charset, $out_charset, var_export($data, TRUE)) . ';');}return $output;
}public function getfiles($dir,&$files=array())
{if(!file_exists($dir) || !is_dir($dir)){return mkdir($dir);}if(substr($dir,-1)=='/'){$dir = substr($dir,0,strlen($dir)-1);}$_files = scandir($dir);foreach($_files as $v){if($v != '.' && $v!='..'){if(is_dir($dir.'/'.$v)){$this->getfiles($dir.'/'.$v,$files);}             else             {$files[] = $dir.'/'.$v;}}}return $files;
}

php 文件夹打包zip压缩包相关推荐

  1. php将文件夹打包zip文件,php将文件夹打包成zip文件

    php将文件夹打包成zip文件:function addFileToZip($path,$zip){ $handler=opendir($path); //打开当前文件夹由$path指定. while ...

  2. js多文件下载和多文件分文件夹打包下载并重命名

    js多文件下载并重命名 let list=['...'] function downloadFile(list,index){//下载文件方法if(index>=list.length){ret ...

  3. 前端提效 Magic,导出多个Excel文件并打包为压缩包下载

    本篇文章主要介绍使用 exceljs.file-saver.jszip实现下载包含多层级文件夹.多个 excel.每个 excel 支持多个 sheet 的 zip 压缩包. 上一篇文章:前端复杂表格 ...

  4. 批量将很多文件夹打包压缩成多个ZIP和7z压缩包文件

    概要:我们有时候需要将很多不同类型的文件夹单独打包成一个 ZIP 压缩包或者单独的打包成一个 7z 压缩包,我们一个一个处理的话比较慢,但是有没有一种批量将文件夹转成 ZIP 和 7z 压缩包的方法呢 ...

  5. linux将某个文件夹打包为zip文件

    将当前目录下的PocTest文件夹打包成PocTest.zip: zip -q -r PocTest.zip PocTest/

  6. php 文件夹打包_php将文件夹打包成zip文件

    php将文件夹打包成zip文件:function addFileToZip($path,$zip){ $handler=opendir($path); //打开当前文件夹由$path指定. while ...

  7. java 把文件打包成zip文件_java将文件或是文件夹打包压缩成zip格式

    导读热词 下面是编程之家 jb51.cc 通过网络收集整理的代码片段. 编程之家小编现在分享给大家,也给大家做个参考. import java.io.BufferedInputStream; impo ...

  8. Java实现文件夹打包

    导语   接到一个需求,说是要把文件夹打包成成zip包,还要求使用Java代码来实现,想想既然是工具类,那么就来编写一个工具来试试. 废话不多说直接上代码 import java.io.Buffere ...

  9. linux将目录打包压缩,linux 文件夹打包、解压命令大全

    TAR压缩tar -zcvf /data/backup.tar.gz /wwwroot tar -zcvf   打包后生成的文件名全路径     要打包的目录 以上的例子:把/wwwroot文件夹打包 ...

最新文章

  1. python 调用linux命令-Python执行Linux系统命令的4种方法
  2. Markdwon中多张图片的并排显示(Mardown的灵动使用技巧)
  3. Android 百度地图之全局搜索周边搜索全国搜索城市路线规划(升级版附源码)
  4. 当安全遇到大数据 “永恒之蓝”也将无所遁形!
  5. 华为Mate 40系列最新渲染图曝光:依旧双开孔瀑布屏 实体音量键回归
  6. 关于局部变量的几个难点
  7. java string 最大长度_我说我精通字符串,面试官竟然问我Java中的String有没有长度限制!?...
  8. Linux系统为docker配置镜像加速器
  9. ASO优化方法_获取ASO关键词指数接口
  10. Android常用框架
  11. 微信小程序 简单动画入门
  12. Logic unifying接收器 绑定与取消 重新关联
  13. Monte Carlo Method
  14. Hexo博客配置笔记
  15. linux上设置别名alias(快速便捷打开文件)
  16. Cornfields
  17. Firefox使用wingate代理上网的问题
  18. 笔记本整机性能测试软件,整机性能测试
  19. 数人云开源Mesos调度器Swan
  20. 移动硬盘插笔记本上不显示盘符,并灯光闪烁发出咯吱声,设备管理器中可见,别的机器上可以正常使用

热门文章

  1. dlna 电脑连r1_pc 电脑如何投屏到电视? DLNA
  2. hrbust 1611 最强兵力【二维费用完全背包+分类处理】
  3. 游戏引擎设计 - 粒子系统
  4. html5绘制随机五角星_HTML5 canvas基本绘图之绘制五角星
  5. 山东大学软件学院计算机组成原理课程设计整机实验(2)
  6. 调试大普RTC芯片驱动-ins5699s
  7. 软件测试-硬件配置测试
  8. 无法在web服务器上启动调试。未能启动asp.net调试。在不调试的情况下启动项目也许能获得更多信息。
  9. Win10系统重装 华硕笔记本电脑
  10. 2022年第十三届蓝桥杯省赛B组python 试题F:消除游戏