文档章节

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

crazymus
 crazymus
发布于 2014/11/16 17:52
字数 356
阅读 3166
收藏 12

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
博文 70
码字总数 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
0
PHP扩展类ZipArchive实现压缩解压Zip文件和文件打包下载

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

Junn
2013/01/24
0
1
文件打包,下载之使用PHP自带的ZipArchive压缩文件并下载打包好的文件

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

雍雍_yoyo
2015/10/12
332
0
iOS开发-用ZipArchive添加和解压zip包

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

TomatosX
2015/09/04
1K
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
67
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

kernel version does not match DSO version

错误信息: kernel version 384.11 does not match DSO version 384.130.0 原因是: cuda driver版本太低,不匹配DSO 简单有效的修复方法,升级nvidia driver, 步骤如下: 1. google seach ...

刘小米
今天
0
0
maven坐标和依赖

一、maven坐标详解 <groupId>com.fgt.club</groupId><artifactId>club-common-service-facade</artifactId><version>3.0.0</version><packaging>jar</packaging> maven的坐标元素说......

老韭菜
今天
1
0
springmvc-servlet.xml配置表功能解释

问:<?xml version="1.0" encoding="UTF-8" ?> 答: xml version="1.0"表示是此xml文件的版本是1.0 encoding="UTF-8"表示此文件的编码方式是UTF-8 问:<!DOCTYPE beans PUBLIC "-//SPRING//......

隐士族隐逸
今天
1
0
基于TP5的微信的公众号获取登录用户信息

之前讲过微信的公众号自动登录的菜单配置,这次记录一下在TP5项目中获取自动登录的用户信息并存到数据库的操作 基本的流程为:微信设置自动登录的菜单—>访问的URL指定的函数里获取用户信息—...

月夜中徘徊
今天
0
0
youTrack

package jetbrains.teamsys.license.runtime; 计算lis package jetbrains.ring.license.reader; 验证lis 安装后先不要生成lis,要把相关文件进行替换 ring-license-checker-1.0.41.jar char......

max佩恩
今天
2
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部