`
dcj3sjt126com
  • 浏览: 1876898 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

PHP ZipArchive 实现压缩解压Zip文件

    博客分类:
  • PHP
阅读更多

PHP ZipArchive 是PHP自带的扩展类,可以轻松实现ZIP文件的压缩和解压,使用前首先要确保PHP ZIP 扩展已经开启,具体开启方法就不说了,不同的平台开启PHP扩增的方法网上都有,如有疑问欢迎交流。这里整理一下常用的示例供参考。

一、解压缩zip文件

01
02
03
04
05
06
07
08
09
10
11
$zip = new ZipArchive;//新建一个ZipArchive的对象
/*
通过ZipArchive的对象处理zip文件
$zip->open这个方法的参数表示处理的zip文件名。
如果对zip文件对象操作成功,$zip->open这个方法会返回TRUE
*/
if ($zip->open('test.zip') === TRUE)
{
$zip->extractTo('images');//假设解压缩到在当前路径下images文件夹的子文件夹php
$zip->close();//关闭处理的zip文件
}

二、将文件压缩成zip文件

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

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

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

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

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

ZipArchive方法如下:

分享到:
评论

相关推荐

    php zipArchive-压缩类 支持ZIP,TAR,GZIP

    在PHP编程中,`ZipArchive` 是一个非常实用的类,用于处理ZIP格式的压缩文件。这个类提供了创建、读取、修改以及提取ZIP文件的能力,同时也支持其他压缩格式如TAR和GZIP。在本文中,我们将深入探讨`ZipArchive` 类的...

    PHP在线压缩解压ZIP文件

    总结来说,这个PHP在线压缩解压ZIP文件的工具是一个基于Web的实用程序,它利用PHP的ZipArchive类处理ZIP文件的压缩和解压。通过密码保护机制,它可以提供一定程度的安全性。实现这一功能的核心代码可能分布在unzip....

    ZipArchive 解压zip

    2. **解压文件**:解压ZIP文件是ZipArchive的基本功能之一。你可以通过遍历ZIP文件的所有条目,然后调用`ExtractToDirectory()`方法将每个条目解压缩到指定的目录。这种方法允许一次性解压整个ZIP,或者根据需要解压...

    使用ZipArchive解压

    本篇文章将深入探讨如何使用PHP中的ZipArchive类来解压文件,这对于Web开发人员来说是一项重要的技能。 首先,ZipArchive是PHP提供的一种内置库,它允许我们创建、修改和读取ZIP格式的压缩文件。ZIP是一种广泛使用...

    php zip gzip tar..压缩解压缩类

    3. **zip**:zip是一种常用的文件压缩格式,PHP中的`ZipArchive`类提供了对zip文件的处理,包括添加、删除、列出和提取文件。例如,你可以创建一个新的`ZipArchive`对象,然后调用`open()`方法打开或创建一个zip文件...

    php压缩zip文件

    ### PHP压缩ZIP文件知识点 #### 一、PHP与ZIP文件操作简介 在PHP开发中,经常需要对文件进行压缩操作,...综上所述,利用PHP内置的`ZipArchive`类可以方便地实现文件的压缩功能,适用于多种场景下的文件管理需求。

    PHP生成压缩文,不带要压缩文件的根目录

    "PHP生成压缩文,不带要压缩文件的根目录"这个话题,主要涉及的是如何使用PHP的ZipArchive类来创建一个ZIP文件,但不包含源文件的根目录路径。下面将详细介绍这一知识点及其相关技术。 首先,我们需要了解PHP的Zip...

    php使用ZipArchive函数实现文件的压缩与解压缩

    ZipArchive类提供了一系列的方法来实现文件的压缩与解压缩功能。以下是根据文档内容总结的关键知识点: 一、解压缩ZIP文件 要解压缩一个ZIP文件,首先需要创建一个ZipArchive对象。使用ZipArchive::open()方法打开...

    php在线解压压缩zip工具

    总结,PHP在线解压压缩ZIP工具利用了`ZipArchive`类提供的功能,实现了便捷的文件打包和解包服务。在开发这样的工具时,需要注意安全、性能、用户体验等多个方面,以确保功能的稳定性和实用性。

    PHP实现的超强在线压缩解压缩 脚本代码phpzip(亲测好用)

    在线解压缩则是读取ZIP文件并将其内容解压到指定的目录。同样,我们使用ZipArchive类,但这次调用的是extractTo方法。此方法接受两个参数:一个是解压的目标目录,另一个是ZIP文件内的文件或目录名。如果希望解压...

    PHP在线压缩解压文件

    同样,我们利用ZipArchive类,可以实现文件或目录的压缩操作: 1. 初始化ZipArchive对象:`$zip = new ZipArchive();` 2. 创建一个新的ZIP文件:`$res = $zip->open('new_zip_file.zip', ZIPARCHIVE::CREATE);` 3. ...

    ziparchive

    通过理解ZIP格式的基本原理和ZIPARCHIVE库的API,开发者可以有效地实现数据的压缩、解压缩和管理,从而提高程序的效率和用户体验。在实际开发过程中,结合具体需求灵活运用这些知识,将是提升项目质量的关键。

    PHP在线解、压缩ZIP文件程序 V1.0

    1. **ZipArchive类**:`ZipArchive`是PHP的核心组件,提供了一系列方法来处理ZIP文件,如`open()`用于打开ZIP文件,`close()`用于关闭文件,`addFile()`用于添加文件,`extractTo()`用于解压缩,以及`deleteIndex()`...

    php解压zip文件

    ### 使用ZipArchive解压ZIP文件 首先,我们需要实例化一个`ZipArchive`对象,然后通过其提供的方法来操作ZIP文件。以下是解压ZIP文件的基本步骤: 1. 打开ZIP文件: ```php $zip = new ZipArchive(); if ($zip->...

    在线ZIP解压缩网页工具 PHP

    在线ZIP解压缩网页工具是基于PHP开发的一种便捷服务,它允许用户通过网页浏览器上传ZIP文件并进行解压缩操作,无需在本地计算机上安装专门的软件。这种工具在处理大文件或远程文件时尤为方便,尤其对于那些不熟悉或...

    php文件在线压缩程序类.zip

    在处理文件操作,包括文件的压缩与解压缩时,PHP提供了内置的函数库,使得开发者能够方便地实现这些功能。"php文件在线压缩程序类.zip"这个资源提供了一个用PHP编写的文件在线压缩类库,它利用了PHP自身提供的压缩...

    PHP自带ZIP压缩、解压缩类ZipArchiv用法指南_.docx

    PHP 自带 ZIP 压缩、解压缩类 ZipArchiv 是 PHP 语言中的一个内置类,用于实现 ZIP 文件的压缩和解压缩操作。该类提供了多种方法来操作 ZIP 文件,例如压缩文件、解压缩文件、追加文件到 ZIP 文件、删除压缩文件中的...

    php在线解压缩工具

    3. 使用`ZipArchive`或其他第三方库解压缩文件,可能通过`unzip.php`等脚本来实现。 4. `rm.php`可能用于在解压后删除临时文件,保持服务器整洁。 5. 解压缩完成后,将结果反馈给用户,例如列出所有解压出的文件或...

    php解压或压缩打包文件源码.zip

    - 解压缩:`ZipArchive::extractTo()`方法可以将ZIP文件中的内容解压缩到指定目录。 2. **gz** 函数系列: - 压缩:`gzencode()`和`gzcompress()`用于对字符串进行压缩,生成GZIP或ZLIB格式的数据。 - 解压缩:`...

    php 站点在线zip压缩解压缩小程序

    总结来说,"php 站点在线zip压缩解压缩小程序"利用了PHP的`ZipArchive`类,实现了在服务器端对ZIP文件的便捷操作,为用户提供了高效且实用的功能。不过,实际部署时,需要注意安全性、性能优化以及错误处理,以确保...

Global site tag (gtag.js) - Google Analytics