一、解压缩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. YAML文件格式_k8s/docker-compose配置文件

    YAML(Yet Another Markup Language),是一个JSON的超集,意味着任何有效JSON文件也都是一个YAML文件.它规则如下: )大小写敏感 )使用缩进表示层级关系,但不支持 ...

  2. Houdini技术体系 基础管线(四) :Houdini驱动的UE4植被系统 下篇

    背景 在上篇中,实现了使用Houdini在UE4里根据地形过程生成植被的最基本的原型.并且支持把植被在UE4里Bake成使用的HierarchicalInstancedStaticMeshCompon ...

  3. 群晖搭建webssh

    拷贝工程到系统根,然后需要赋予权限 sudo chmod 777 -R WebSSH2/ git clone https://github.com/zhaocundang/WebSSH2.git de ...

  4. 一个第三方Dart库导致的编译错误!

    今天学习flutter过程中,突然程序不能运行了,无论是命令行,抑或Android Studio,还是Idea都是出现同样错误,如下: Running .5s Launching lib\main.d ...

  5. Excel导入工具类兼容xls和xlsx

    package com.bj58.finance.platform.operation.provider.util; import org.apache.log4j.Logger; import or ...

  6. _T宏的使用

    来源自百度.   他的作用是让你的程序支持Unicode编码, 因为Windows使用两种字符集ANSI和UNICODE, 前者就是通常使用的单字节方式, 但这种方式处理像中文这样的双字节字符不方便, ...

  7. angularjs使用BUG收集和解决办法

    此文章涉及到时1.X的版本.请注意! 1.关于checkbox和bootstrap不能选中BUG 在使用angularjs的时候,有个比较明显的bug ng-disabled无效的情况 这里是一种情况 ...

  8. 20175320 2018-2019-2 《Java程序设计》第1周学习总结

    20175320 2018-2019-2 <Java程序设计>第1周学习总结 教材学习内容总结 本周学习了教材的第一章内容.在这一章中,我了解了Java这门编程语言的特点和地位,而本章的重 ...

  9. css学习_css清除浮动

    若元素没有设置宽高,那元素实际宽高是被内容撑起来, 若元素自己有设置宽高,那实际面积于自己的盒子模型有关 1.清除浮动的本质 清除浮动主要是为了解决父级元素因为子级浮动而引起的内部高度为0的问题. ( ...

  10. 用VsCode写Markdown

    Markdown 基本语法 段落 非常自然,一行文字就是一个段落. 比如: 这是一个段落 会被解释成: <p>这是一个段落.</p> 如果你需要另起一段,请在两个段落之间隔一个 ...