$path = PUBLIC_DIR.'/images/'; //待压缩文件夹父目录

$zipPath = PUBLIC_DIR.'/images_zip/'; //压缩文件保存目录

!is_dir($zipPath) ? mkdir($zipPath, 0755, true) : '';

// Initialize archive object

$zip = new ZipArchive();

$dir_list = scandir($path);

if (empty($dir_list)) {

return false;

}

foreach($dir_list as $dir_name) {

if ($dir_name == '.' || $dir_name == '..') {

continue;

}

$dir_path = $path.$dir_name; //待压缩目录

if (!is_dir($dir_path)) {

continue;

}

$zipFile = $zipPath.$dir_name.'.zip'; //压缩包名称

$zip->open($zipFile, ZipArchive::CREATE | ZipArchive::OVERWRITE);

$file_list = scandir($dir_path); //文件名

foreach ($file_list as $file_name) {

if ($file_name == '.' || $file_name == '..') {

continue;

}

$zip->addFile($dir_path.'/'.$file_name, $file_name); //第二个参数使压缩文件名为待压缩文件原名(否则压缩包里会有多级目录)

}

$zip->close();

}

待压缩文件夹:

压缩后压缩包:

打开压缩包看效果:

php怎么压缩文件夹,PHP压缩文件夹 php相关推荐

  1. java压缩----使用ANT JDK压缩---只压缩选中目录的指定文件夹

    写在前面的话:使用ANT中的压缩功能在很多文章中都有,但是只能压缩指定目录的全部文件或者文件夹,在项目中,经常有这样的需求:只压缩指定目录的部分文件夹, 用过ant.xml 的人都很容易想到 file ...

  2. linux下 java 压缩文件夹,java压缩文件夹linux下乱码问题

    前几天写了文章介绍java文件夹的压缩(见 http://zwllxs.iteye.com/blog/836483),但是发现一个问题,在linux下,如果文件夹内的文件是中文名,那么压缩后,这些文件 ...

  3. python生成文件夹以及压缩文件夹

    ''' @Description 生成文件夹 @params (path) 文件夹路径 @params (title) 文件名称 @params (content) html 文件代码 @params ...

  4. unity3d 压缩文件夹和压缩文件

    直接开始,不扯淡 1:下载名字为<   Ionic.zip    >的压缩包,将里面的<    Ionic.Zip.dll    >放到unity3d的Plugins文件夹下. ...

  5. 解决winrar压缩文件或文件夹时,文件拒绝访问问题

    一.问题描述 使用winrar压缩文件或文件夹时,会弹出"文件拒绝访问"问题,如下图: 二.解决方法 1.对于单个文件,进入文件属性进行以下设置(图中步骤1可省略): 2.对于文件 ...

  6. Java实现zip文件压缩:单个文件、文件夹以及文件和文件夹的压缩

    // 测试 ZipUtil.zipFiles(new File("D:/abc"), new File("a123.zip")); import java.io ...

  7. linux 打包压缩文件夹命令/压缩文件

    一.打包压缩 例子:把www.xx.com文件夹打包压缩xx.zip文件,并指定放到/www/wwwroot/www.xx.com/中 zip -r /www/wwwroot/www.xx.com/x ...

  8. Ubuntu 下大文件夹分卷压缩

    Ubuntu 下大文件夹分卷压缩 由于android源码比较大,直接上传百度云盘又有文件大小限制,因此,分卷压缩尤其重要 ref : http://blog.csdn.net/baggio1006/a ...

  9. 从零開始学习制作H5应用——V5.0:懊悔机制,整理文件夹,压缩,模板化

    经过前面四个版本号的迭代.我们已经制作了一个从视觉和听觉上都非常舒服的H5微场景应用,没有看过的请戳以下: V1.0--简单页面滑动切换 V2.0--多页切换.透明过渡及交互指示 V3.0--增加lo ...

最新文章

  1. OTP gen_server
  2. 群体智能,多个机器人协同搬运!
  3. easyswoole数据库连接池_如何在 Swoole 中优雅的实现 MySQL 连接池
  4. Taro+react开发(86):资源文件处理
  5. layui 在springboot2.x 时,页面展示不了layui的问题
  6. 自学java编译老是出错_为什么按照书上的代码,编译老是出错?
  7. 创建Variant数组
  8. linux编译后 空间不足,Linux系统/run/systemd空间不足问题解决
  9. idea解決tomcat乱码问题
  10. Excel易用宝-安装与激活
  11. 三种方法帮你恢复删除的文件
  12. elixir元编程的quote与unquote
  13. 高效工作节省时间的一些小技巧
  14. eclipse 自动生成注释 @author
  15. 电信光纤猫虚拟服务器设置方法,电信光纤猫与无线路由器连接的设置方法
  16. 【opencv】支付宝AR实景红包领取方法
  17. 电阻为何是标准的及各精度的标准阻值表
  18. 关于互联网公司的加班制度,我想说点心里话
  19. mac安装psycopg2报错
  20. 超轻型飞机 - 蟋蟀,世界上最小的双引擎载人飞机!

热门文章

  1. icraft服务器网页图片,iCraft家族添新一代顶级显卡
  2. iOS开发中Touch ID的使用
  3. 第十一届蓝桥杯省赛:纪念日
  4. t3计算机名带特殊符号,带特殊符号的网名,带特殊符号的网名
  5. android binder - 客户端(c++层) 调用 服务端(java层),服务端回调客户端 例子
  6. Interlocked.Increment 方法 和Interlocked.Decrement 方法作用
  7. ios直播开发基础,推流协议及流程
  8. USB(九)2022-03-01
  9. 《Head First 设计模式》例子的C++实现(4 单件模式)
  10. C语言——动态开辟内存空间的函数