ZipArchive 是PHP自带的zip扩展类,可以实现对文件或目录实现ZIP文件的压缩和解压,使用前首先要确保PHP ZipArchive扩展已经开启,以下代码亲测可用,但对中文命名的文件不兼容

一、将文件压缩成zip文件(可追加文件)

function addFileToZip($path = '',$zip = ''){

// 判断是不是目录,是的话递归进入

if(is_dir($path)) {

$handler = opendir($path); //打开当前文件夹由$path指定。

while (($filename = readdir($handler)) !== false) {

if ($filename != "." && $filename != "..") {

//文件夹文件名字为'.'和'..',不要对他们进行操作

if (is_dir($path . "/" . $filename)) {

// 如果读取的某个对象是文件夹,则递归

addFileToZip($path . "/" . $filename, $zip);

} else { //将文件加入zip对象

$zip->addFile($path . "/" . $filename);

}

}

}

}else{

$zip->addFile($path);

}

@closedir($path);

}

$zip = new ZipArchive();

$path = './';

$zipName = $_SERVER['DOCUMENT_ROOT']."/20180826.zip";

if($zip->open($zipName, ZipArchive::CREATE) === TRUE){

addFileToZip($path, $zip); // 调用方法,对要打包的根目录进行操作,并将ZipArchive的对象传递给方法

$zip->close(); // 关闭处理的zip文件

}

echo 'zip压缩成功';

二、将zip文件解压——从zip压缩文件中提取文件

function unZip($filename = '', $path = ''){

//将文件名和路径转成windows系统默认的gb2312编码,否则将会读取不到

$filename = iconv("utf-8","gb2312",$filename);

$path = iconv("utf-8","gb2312",$path);

$zip = new ZipArchive;

if ($zip->open($filename) === TRUE) {//中文文件名要使用ANSI编码的文件格式

$zip->extractTo($path);//提取全部文件

$zip->close();

echo 'zip解压成功';

} else {

echo 'zip解压失败或没有这个zip文件';

}

}

$filename = $_SERVER['DOCUMENT_ROOT'].'/unzip.zip';

$path = $_SERVER['DOCUMENT_ROOT'].'/unzip';

unZip($filename,$path );

php zip扩展文件,php使用ZipArchive扩展实现文件的zip压缩与zip解压相关推荐

  1. ios文件连接 百度网盘服务器,iOS系统教程:iphone怎么解压百度网盘文件

    有很多网友问iphone手机(IOS系统)下载或者接收到的 zip/7z/rar等格式压缩包如何打开? 咱们讲过用IZIP软件可以操作,但是很多小伙伴不会操作,也有觉得操作过程太繁琐的.今天小编就再给 ...

  2. zip分卷压缩的步骤_linux下分卷压缩,合并解压的3种方法

    我们上传东西的时候,由于文件过大而不能上传,或者不给上传,最明显的就是发邮件了,附件最大5M,有的10M.如果超过了就郁闷了.这个时候,如果能把压缩的东西,分割开来就比较爽了,windows下面我想大 ...

  3. Linux之zip加密压缩与解密解压(一百二十一)

    Linux之zip加密压缩与解密解压 1.zip加密压缩目录 # zip -rP Abc#123 tmp.zip test/2.unzip解密解压缩 # unzip -P Abc#123 tmp.zi ...

  4. linux系统下压缩文件,Linux系统下文件的压缩.打包与解压

    处理 .zip 文件的 zip 和 unzip zip 和 unzip 程序位于 /usr/bin 目录中,它们和 MS - DOS 下的 pkzip.pkunzip 以及 MS-windows 的 ...

  5. Linux下tar解压到当前目录,zip压缩,tar压缩,tar解压

    Linux下tar解压tar.gz文件到当前目录 很多时候我们需要把文件解压到当前目录,命令如下: tar -zxvf vscode-server-linux-x64.tar.gz -C ./ 有时候 ...

  6. zip分卷压缩与合并解压

    压缩: zip test.zip test.doc //先压缩不然会报错 分卷: zip -s 50m test.zip --out ziptest //每个子文件50M大小 合卷: cat zipt ...

  7. zip压缩和unzip解压

    1.zip 压缩包名.zip 要压缩的文件 2.zip -r 压缩文件夹.zip 要压缩的文件 3.unzip 解压的文件.zip

  8. 文件的压缩打包及解压解包

    压缩命令有:zip,gzip,bzip2  解压命令为:unzip gzip:是GNUzip的缩写,压缩包名为.gz的后缀 命令格式:zip 参数 压缩包名 源文件 zip  -y 压缩包名 * -x ...

  9. linux大文件分包压缩和批量解压命令tar // tar 排除指定目录

    压缩命令主要用到tar打包和split分割,命令如下: tar czf - aaa | split -b 1024m - bbb.tar.gz_ aaa可以是文件也可以是目录, 大小可以是b.k.m这 ...

  10. Linux使用7z压缩软件,解压到指定文件夹

    7za x 压缩包 -r -o./ x  代表解压缩文件,并且是按原始目录树解压(还有个参数 e 也是解压缩文件,但其会将所有文件都解压到根下,而不是自己原有的文件夹下) -r 表示递归解压缩所有的子 ...

最新文章

  1. WIN XP 命令汇总
  2. Node.js使用NodeMailer发送邮件
  3. 在悬崖下得到鸿蒙塔,第一次夜宿在悬崖峭壁上:垂直高度356米,峡谷深渊就在边上...
  4. 【光环板】更新硬件方案最近找到的一些光环板资料,硬件方案及原理图
  5. 在vc2005中使用MoveWindow()调整控件大小,不能及时刷新,在vc6中则可以
  6. 图片加到json中,提交到服务器端处理异常问题。
  7. 黑马day16 jqueryamp;属性过滤选择器
  8. 黑客帝国中代码雨如何实现?用 Python 就可以!
  9. 【bzoj4011】【HNOI2015】落忆枫音【树形DP】
  10. Apache主机如何强制HTTP重定向到HTTPS WorldPress
  11. AR技术应用 の 如何做一个Pokemon GO丢出精灵球抓住皮卡丘吧!(2)
  12. 360ie7模式下的一个兼容
  13. python学习 -女神或者男神把微信消息撤回后好慌,有了这个妈妈再也不担心你看不到女神或者男神撤回的消息了(超详解)...
  14. c语言 获取文件修改时间,C语言中用于修改文件的存取时间的函数使用
  15. Wireshark-----抓包分析
  16. OpenSSL公钥 私钥 RSA
  17. 论文解读:《基于注意力的多标签神经网络用于12种广泛存在的RNA修饰的综合预测和解释》
  18. 友勤协同Oracle P6项目管理软件,助力江苏爱康能源工程交付高绩效项目。
  19. 小游戏 虚拟支付 米大师 90009
  20. 云计算专业运维工程师所需要的知识技术

热门文章

  1. PPT做的很好却不会讲?掌握这些职场PPT演讲技巧,不再惧怕做汇报
  2. python入门学习—字典(FishC)
  3. OpenCV-Python官方教程-24-SIFT算法
  4. 谷歌浏览器用的是什么内核
  5. 计算机二级excel经典操作题,计算机二级office经典题库
  6. LaTeX安装及周报模板
  7. github 出现无法连接成功问题终极详解
  8. 李宏毅20212022机器学习
  9. 基于ace admin 的左侧菜单及tab,tab支持右键菜单及与左侧菜单联动
  10. 机顶盒怎样配置服务器信息,网络机顶盒 桌面配置服务器