文档章节

使用PHP处理zip压缩文件之ZipArchive

crazymus
 crazymus
发布于 2014/11/16 17:52
字数 356
阅读 3134
收藏 12
点赞 0
评论 0

PHP5.2以后,强化了对压缩文件的处理,不仅对zip算法,还包括rar算法、gzip算法等都有了相应的支持。

今天,我来和大家分享一下用PHP处理zip文件。我们用到的是ZipArchive类,如果你安装了PHP5.2以上,无需做任何配置即可开始使用该类。

创建压缩文件:

<?php

//实例化类
$zip = new ZipArchive();
//需要打开的zip文件,文件不存在将会自动创建
$filename = "./test.zip";

if ($zip->open($filename, ZIPARCHIVE::CREATE)!==TRUE) {
	//如果是Linux系统,需要保证服务器开放了文件写权限
    exit("文件打开失败!");
}

//将一段字符串添加到压缩文件中,test.txt文件会自动创建
$zip->addFromString("test.txt", "你好 , 世界");

//将test.php文件添加到压缩文件中
$zip->addFile("test.php");

//输出加入的文件数 , 这里应该是 2
echo "文件数 : ".$zip->numFiles;

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

?>

创建的文件结构:

下面再来看解压文件:

<?php

$zip = new ZipArchive;

if ($zip->open('test.zip') === TRUE) {
	//将test.zip中的文件解压到test文件夹中,文件夹会自动创建
    $zip->extractTo('test/');
    $zip->close();
    echo '解压成功';
} else {
    echo '解压失败';
}

?>



ZipArchive类的基本使用就是这么简单。当然,它还有很多强大的功能,请参阅PHP官网中相关内容。

欢迎大家和我交流,若有任何问题请留言。

© 著作权归作者所有

共有 人打赏支持
crazymus

crazymus

粉丝 67
博文 69
码字总数 106718
作品 8
程序员
PHP自带ZIP压缩、解压缩类ZipArchiv介绍及使用

--------------------- 使用ZipArchive对象的前提 --------------------- 要使用该PHP扩展类,需要(PHP 5 >= 5.2.0, PECL zip >= 1.1.0),部分方法需要 PHP 5.2.+,且php.ini配置支持zip 对于......

lixiaokai2008 ⋅ 2013/10/31 ⋅ 0

PHP扩展类ZipArchive实现压缩解压Zip文件和文件打包下载

PHP ZipArchive 是PHP自带的扩展类,可以轻松实现ZIP文件的压缩和解压,使用前首先要确保PHP ZIP 扩展已经开启,具体开启方法就不说了,不同的平台开启PHP扩增的方法网上都有,如有疑问欢迎交...

Junn ⋅ 2013/01/24 ⋅ 1

文件打包,下载之使用PHP自带的ZipArchive压缩文件并下载打包好的文件

总结: 使用PHP下载文件的操作需要给出四个header(),可以参考我的另一篇博文:PHP如何实现下载功能超详细流程分析 计算文件的大小的时候,并不需要先打开文件,通过filesize($filename)就可...

雍雍_yoyo ⋅ 2015/10/12 ⋅ 0

iOS开发-用ZipArchive添加和解压zip包

ZipArchive是一个开源的zip开发包工具。 使用方法如下: 创建/添加一个zip包 ZipArchive* zipFile = [[ZipArchive alloc] init]; //次数得zipfilename需要一个完整得路径,例如***/Documents...

TomatosX ⋅ 2015/09/04 ⋅ 0

PHPExcel 错误Fatal error: ZipArchive library is not

Fatal error: Class 'ZipArchive' not found的解决办法 出现这个错误说明是程序在调用'ZipArchive' 这个类的时候没有成功,原因是由于在安装php的时候没有增加php zip的支持(非zlib)。 在W...

mac_zhao ⋅ 2015/01/15 ⋅ 0

PHP 压缩ZIP中文名乱码问题

$zip = new ZipArchive(); $zip->addFile($path . $fileName) 用这种方法压缩的文件中如果有中文名文件解压后乱码 是什么原因呢? 可能是文件名称编码问题,但是如何设置编码呢?...

噢-我想多了 ⋅ 2016/09/29 ⋅ 3

关于php解压压缩包问题。急急急!!!!!

function jieya($zips,$wenjian){ $zip = new ZipArchive;//新建一个ZipArchive的对象 if ($zip->open($zips) === TRUE) { $zip->extractTo($wenjian); $zip->close(); return $wenjian; } e......

上空飞过 ⋅ 2012/04/15 ⋅ 2

CNNVD 关于手机程序第三方解压缩库输入验证安全漏洞情况的通报

  近日,国家信息安全漏洞库(CNNVD)收到关于手机程序第三方解压缩库输入验证安全漏洞(CNNVD-201805-440)情况的报送。成功利用该漏洞的攻击者,可以远程读取应用数据、甚至执行任意代码...

FreeBuf ⋅ 05/23 ⋅ 0

文件解压和压缩Demo

Demo示例了如何利用第三方类库 ZipArchive 来解压和压缩.zip文件。Demo的演示过程是:先从网络下载一个.zip文件,然后解压它,最后再进行压缩。 代码的解释文章(英文)是:http://www.icod...

红薯 ⋅ 2013/08/16 ⋅ 0

为啥ubuntu安装了apache+php之后找不到php.ini和log

使用apt-get安装了apache + php, 但是zip没有被默认安装, 运行phpExcel出现 Fatal error: Class 'ZipArchive' not found in 于是按照网上的方法下载zip包编译安装, 最后是查找php.ini修改配置...

甘薯 ⋅ 2015/03/15 ⋅ 6

没有更多内容

加载失败,请刷新页面

加载更多

下一页

Spring | IOC AOP 注解 简单使用

写在前面的话 很久没更新笔记了,有人会抱怨:小冯啊,你是不是在偷懒啊,没有学习了。老哥,真的冤枉:我觉得我自己很菜,还在努力学习呢,正在学习Vue.js做管理系统呢。即便这样,我还是不...

Wenyi_Feng ⋅ 今天 ⋅ 0

博客迁移到 https://www.jianshu.com/u/aa501451a235

博客迁移到 https://www.jianshu.com/u/aa501451a235 本博客不再更新

为为02 ⋅ 今天 ⋅ 0

win10怎么彻底关闭自动更新

win10自带的更新每天都很多,每一次下载都要占用大量网络,而且安装要等得时间也蛮久的。 工具/原料 Win10 方法/步骤 单击左下角开始菜单点击设置图标进入设置界面 在设置窗口中输入“服务”...

阿K1225 ⋅ 今天 ⋅ 0

Elasticsearch 6.3.0 SQL功能使用案例分享

The best elasticsearch highlevel java rest api-----bboss Elasticsearch 6.3.0 官方新推出的SQL检索插件非常不错,本文一个实际案例来介绍其使用方法。 1.代码中的sql检索 @Testpu...

bboss ⋅ 今天 ⋅ 0

informix数据库在linux中的安装以及用java/c/c++访问

一、安装前准备 安装JDK(略) 到IBM官网上下载informix软件:iif.12.10.FC9DE.linux-x86_64.tar放在某个大家都可以访问的目录比如:/mypkg,并解压到该目录下。 我也放到了百度云和天翼云上...

wangxuwei ⋅ 今天 ⋅ 0

PHP语言系统ZBLOG或许无法重现月光博客的闪耀历史[图]

最近在写博客,希望通过自己努力打造一个优秀的教育类主题博客,名动江湖,但是问题来了,现在写博客还有前途吗?面对强大的自媒体站点围剿,还有信心和可能型吗? 至于程序部分,我选择了P...

原创小博客 ⋅ 今天 ⋅ 0

IntelliJ IDEA 2018.1新特性

工欲善其事必先利其器,如果有一款IDE可以让你更高效地专注于开发以及源码阅读,为什么不试一试? 本文转载自:netty技术内幕 3月27日,jetbrains正式发布期待已久的IntelliJ IDEA 2018.1,再...

Romane ⋅ 今天 ⋅ 0

浅谈设计模式之工厂模式

工厂模式(Factory Pattern)是 Java 中最常用的设计模式之一。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。 在工厂模式中,我们在创建对象时不会对客户端暴露创建逻...

佛系程序猿灬 ⋅ 今天 ⋅ 0

Dockerfile基础命令总结

FROM 指定使用的基础base image FROM scratch # 制作base image ,不使用任何基础imageFROM centos # 使用base imageFROM ubuntu:14.04 尽量使用官方的base image,为了安全 LABEL 描述作...

ExtreU ⋅ 昨天 ⋅ 0

存储,对比私有云和公有云的不同

导读 说起公共存储,很难不与后网络公司时代的选择性外包联系起来,但尽管如此,它还是具备着简单和固有的可用性。公共存储的名字听起来也缺乏专有性,很像是把东西直接堆放在那里而不会得到...

问题终结者 ⋅ 昨天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部