一、解压缩zip文件

  1. $zip = new ZipArchive;//新建一个ZipArchive的对象
  2. /*
  3. 通过ZipArchive的对象处理zip文件
  4. $zip->open这个方法的参数表示处理的zip文件名。
  5. 如果对zip文件对象操作成功,$zip->open这个方法会返回TRUE
  6. */
  7. if ($zip->open(‘test.zip’) === TRUE)
  8. {
  9. $zip->extractTo(‘images’);//假设解压缩到在当前路径下images文件夹的子文件夹php
  10. $zip->close();//关闭处理的zip文件

二、将文件压缩成zip文件

  1. $zip = new ZipArchive;
  2. /*
  3. $zip->open这个方法第一个参数表示处理的zip文件名。
  4. 第二个参数表示处理模式,ZipArchive::OVERWRITE表示如果zip文件存在,就覆盖掉原来的zip文件。
  5. 如果参数使用ZIPARCHIVE::CREATE,系统就会往原来的zip文件里添加内容。
  6. 如果不是为了多次添加内容到zip文件,建议使用ZipArchive::OVERWRITE。
  7. 使用这两个参数,如果zip文件不存在,系统都会自动新建。
  8. 如果对zip文件对象操作成功,$zip->open这个方法会返回TRUE
  9. */
  10. if ($zip->open(‘test.zip’, ZipArchive::OVERWRITE) === TRUE)
  11. {
  12. $zip->addFile(‘image.txt’);//假设加入的文件名是image.txt,在当前路径下
  13. $zip->close();

三、文件追加内容添加到zip文件

  1. $zip = new ZipArchive;
  2. $res = $zip->open(‘test.zip’, ZipArchive::CREATE);
  3. if ($res === TRUE) {
  4. $zip->addFromString(‘test.txt’, ‘file content goes here’);
  5. $zip->close();
  6. echo ‘ok’;
  7. } else {
  8. echo ‘failed’;
  9. }

四、将文件夹打包成zip文件

  1. function addFileToZip($path, $zip) {
  2. $handler = opendir($path); //打开当前文件夹由$path指定。
  3. /*
  4. 循环的读取文件夹下的所有文件和文件夹
  5. 其中$filename = readdir($handler)是每次循环的时候将读取的文件名赋值给$filename,
  6. 为了不陷于死循环,所以还要让$filename !== false。
  7. 一定要用!==,因为如果某个文件名如果叫’0’,或者某些被系统认为是代表false,用!=就会停止循环
  8. */
  9. while (($filename = readdir($handler)) !== false) {
  10. if ($filename != “.” && $filename != “..”) {//文件夹文件名字为’.’和‘..’,不要对他们进行操作
  11. if (is_dir($path . “/” . $filename)) {// 如果读取的某个对象是文件夹,则递归
  12. addFileToZip($path . “/” . $filename, $zip);
  13. } else { //将文件加入zip对象
  14. $zip->addFile($path . “/” . $filename);
  15. }
  16. }
  17. }
  18. @closedir($path);
  19. }
  20. $zip = new ZipArchive();
  21. if ($zip->open(‘images.zip’, ZipArchive::OVERWRITE) === TRUE) {
  22. addFileToZip(‘images/’, $zip); //调用方法,对要打包的根目录进行操作,并将ZipArchive的对象传递给方法
  23. $zip->close(); //关闭处理的zip文件
  24. }

tp 内置压缩文件zip的更多相关文章

  1. Python之路Python内置函数、zip()、max()、min()

    Python之路Python内置函数.zip().max().min() 一.python内置函数 abs() 求绝对值 例子 print(abs(-2)) all() 把序列中每一个元素做布尔运算, ...

  2. Eclipse spket插件 内置js文件

    这一篇将怎么在spket内置js文件,而不用用户自己去添加.    1. 在开发的Eclipse的 运行配置将下面几个插件勾选上.     2. 在org.eclipse.ui.startup拓展里执 ...

  3. 【转载】在linux下别用zip 用tar来压缩文件 zip解压后还是utf-8 window10是GBK

    3.2 使用 unzip 命令解压缩 zip 文件 将 shiyanlou.zip 解压到当前目录:   $ unzip shiyanlou.zip 使用安静模式,将文件解压到指定目录:   $ un ...

  4. python基础(内置函数+文件操作+lambda)

    一.内置函数 注:查看详细猛击这里 常用内置函数代码说明: # abs绝对值 # i = abs(-123) # print(i) #返回123,绝对值 # #all,循环参数,如果每个元素为真,那么 ...

  5. Python之路(第八篇)Python内置函数、zip()、max()、min()

    一.python内置函数 abs() 求绝对值 例子 print(abs(-2)) all() 把序列中每一个元素做布尔运算,如果全部都是true,就返回true, 但是如果是空字符串.空列表也返回t ...

  6. python匿名函数 高阶函数 内置函数 文件操作

    1.匿名函数 匿名就是没有名字 def func(x,y,z=1): return x+y+z 匿名 lambda x,y,z=1:x+y+z #与函数有相同的作用域,但是匿名意味着引用计数为0,使用 ...

  7. CentOS 打包压缩文件 zip 命令详解

    我们再linux中常见的压缩文件有.tar.gz,.zip,.gz,在linux中,你要习惯没有.rar的日子. 一下为tar,zip命令详解 tar -zcvf /home/files.tar.gz ...

  8. 第三天 函数 三元运算 lambda表达式 内置函数 文件操作

    面向过程: 直接一行一行写代码,遇到重复的内容复制黏贴. 不利于代码阅读 代码没有复用 面向对象 将代码块定义为函数,以后直接调用函数 增强了复用性 函数的定义方法 def 函数名(传递参数): 函数 ...

  9. wpf中内置资源文件

    wpf中包含三种文件类型 资源文件:编译到可执行或库 WPF 程序集中的数据文件. 内容文件:与可执行 WPF 程序集具有显式关联的独立数据文件. 源站点文件:与可执行 WPF 程序集没有关联的独立数 ...

随机推荐

  1. Spark RDD、DataFrame原理及操作详解

    RDD是什么? RDD (resilientdistributed dataset),指的是一个只读的,可分区的分布式数据集,这个数据集的全部或部分可以缓存在内存中,在多次计算间重用. RDD内部可以 ...

  2. halcon 动态阈值分割之偏移值

  3. Rk3288 双屏异显单触摸

    系统版本:RK3288 android 5.1 设备同时有两个lcd,主屏是mipi接口,带有触摸屏,触摸屏是usb接口,副屏是hdmi接口,没有触摸屏,正常情况下,两个lcd显示相同内容,触摸屏一切 ...

  4. Laravel 深入理解路由和URL生成

    原文地址: Laravel 深入理解路由和URL生成 在模板中我们一般不会直接写死url,而是用url助手生成url,本文介绍一下url助手的使用以及遇到的一些比较头疼的问题. 首先,我们创建了一个路 ...

  5. python从XML里取数,遍历等

    #coding=utf-8 #通过minidom解析xml文件 import xml.dom.minidom as xmldom import os ''' XML文件读取 <?xml vers ...

  6. 初学UML之-------用例图

     本文转载至:http://blog.csdn.net/a649518776/article/details/7493148 一.UML简介 UML(统一建模语言,Unified Modeling L ...

  7. [原][openstack-pike][controller node][issue-4][horizon] dashboard access too low reasons[dashboard 访问太慢]

    本文持续更新... 原因一:  访问dashboard 很慢. 输入了用户名和密码还有project后,一直处于首页状态,等很久才进入(暂且不考虑硬件.硬件暂时假设都满足条件) 首先想到的是memca ...

  8. 在微信下载app引导页代码

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  9. js各种获取当前窗口页面宽度、高度的方法

    alert($(window).height()); //浏览器时下窗口可视区域高度 alert($(document).height()); //浏览器时下窗口文档的高度 alert($(docum ...

  10. TX2-入门坑点-Ubuntu16.04任务栏消失

    问题:安装cuda过程中出现任务栏消失,快捷键失效的现象. 解决方法:重装桌面无法解决,使用cssm无法解决,最后删除home目录下的 .cache文件夹重启后解决