php压缩解压zip文件夹,php利用ZipArchive类实现文件压缩与解压
ZipArchive类是专门用于文件的压缩与解压操作的类,通过压缩文件可以达到节省磁盘空间的目的,并且压缩文件体积更小,便于网络传输。
在ZipArchive类中我们主要使用如下方法:
1:open(打开一个压缩包文件)$zip = new \ZipArchive;
$zip->open('test_new.zip', \ZipArchive::CREATE)
参数说明:
第一个参数:要打开的压缩包文件
第二个参数:
ZIPARCHIVE::OVERWRITE总是创建一个新的文件,如果指定的zip文件存在,则会覆盖掉。
ZIPARCHIVE::CREATE如果指定的zip文件不存在,则新建一个。
ZIPARCHIVE::EXCL如果指定的zip文件存在,则会报错。
ZIPARCHIVE::CHECKCONS对指定的zip执行其他一致性测试。
(免费学习视频教程分享:php视频教程)
2:addFile(将指定文件添加到压缩包中)//将test.txt文件添加到压缩包中
$zip->addFile('test.txt'); //第二个参数可对文件进行重命名
3:addEmptyDir (将指定空目录添加到压缩包中)//将一个空的目录添加到zip中
$zip->addEmptyDir ('newdir');
4:addFromString(将指定内容的文件添加到压缩包)// 将有指定内容的new.txt文件添加到zip文件中
$zip->addFromString('new.txt', '要添加到new.txt文件中的文本');
5:extractTO(将压缩包解压到指定目录)$zip->extractTo('test');
6:getNameIndex(根据索引返回文件名称)$zip->getNameIndex(0);//返回压缩包中索引为0的文件名称
7:getStream(根据压缩内的文件名称,获取该文件的文本流)$zip->getStream('hello.txt');
8:renameIndex(根据压缩文件内的索引(从0开始)修改压缩文件内的文件名)/把压缩文件内第一个文件修改成newname.txt
$zip->renameIndex(0,'newname.txt');
9:renameName(根据压缩文件内的文件名,修改压缩文件内的文件名)//把压缩文件内的word.txt修改成newword.txt
$zip->renameName('word.txt','newword.txt');
10:deleteIndex (根据压缩文件内的索引删除压缩文件内的文件)//把压缩文件内第一个文件删除
$zip->deleteIndex (0);
11:deleteName(根据压缩文件内的文件名删除文件)//把压缩文件内的word.txt删除
$zip->deleteName('word.txt');
上面是ZipArchive类的一些常用方法,下面来介绍一些简单示例:
一:创建一个压缩包$zip = new \ZipArchive;
if ($zip->open('test_new.zip', \ZipArchive::CREATE) === true)
{
// 将指定文件添加到zip中
$zip->addFile('test.txt');
// test.txt文件添加到zip并将其重命名为newfile.txt
$zip->addFile('test.txt', 'newfile.txt');
// 将test.txt文件添加到zip文件中的test文件夹内
$zip->addFile('test.txt', 'test/newfile.txt');
//将一个空的目录添加到zip中
$zip->addEmptyDir ('test');
// 将有指定内容的new.txt文件添加到zip文件中
$zip->addFromString('new.txt', '要添加到new.txt文件中的文本');
// 将有指定内容的new.txt添加到zip文件中的test文件夹
$zip->addFromString('test/new.txt', '要添加到new.txt文件中的文本');
//将images目录下所有文件添加到zip中
if ($handle = opendir('images')){
// 添加目录中的所有文件
while (false !== ($entry = readdir($handle))){
if ($entry != "." && $entry != ".." && !is_dir('images/' . $entry)){
$zip->addFile('images/' . $entry);
}
}
closedir($handle);
}
// 关闭zip文件
$zip->close();
}
二:获取压缩包的文件信息并解压指定压缩包$zip = new \ZipArchive;
if ($zip->open('test_new.zip') === true) {
//获取索引为0的文件名称
var_dump($zip->getNameIndex(0));
//将压缩包文件解压到test目录下
$zip->extractTo('test');
//获取压缩包指定文件的文本流
$stream = $zip->getStream('test.txt');
// 关闭zip文件
$zip->close();
$str = stream_get_contents($stream); //这里注意获取到的文本编码
var_dump($str);
}
三:修改压缩包内指定文件的文件名称及删除压缩包内指定文件$zip = new \ZipArchive;
if ($zip->open('test_new.zip') === true) {
//把压缩文件内索引为0的文件修改成newname.txt
$zip->renameIndex(0,'newname.txt');
//把压缩文件内的new.txt修改成newword.txt
$zip->renameName('new.txt','newword.txt');
//删除压缩文件内索引为0的文件
$zip->deleteIndex(0);
//删除压缩文件的test.png
$zip->deleteName('test.png');
// 关闭zip文件
$zip->close();
}
相关文章教程推荐:php教程
php压缩解压zip文件夹,php利用ZipArchive类实现文件压缩与解压相关推荐
- python生成多级文件夹_利用 python 遍历多级文件夹处理不同文件
需求:近期,同事在处理文件的时候,常常需要从一堆文件中提取一些数据信息: 分析:由于每个文件夹下面的文件或文件夹多如牛毛,文件类型也很多种,需要针对不同文件类型做处理,人工处理是不现实的,只能用脚本处 ...
- linux 解压zip 空格,如何在linux系统下对文件夹名有空格的文件夹进行操作,linux空格...
如何在linux系统下对文件夹名有空格的文件夹进行操作,linux空格 在Windows操作系统中可以轻易地创建\移动\删除文件夹名带有空格的文件夹, 而在linux则需要进行一些特殊的处理才能实现以 ...
- linux解压zip、bz、bz2、z、gz、tar(解包)
linux解压zip.bz.bz2.z.gz.tar(解包) (2012-07-29 20:29:08) 转载▼ 标签: 杂谈 分类: Linux/Unix zip: 压缩: zip [-AcdDfF ...
- Ubuntu文件夹有锁标志(去除) 命令打包解包
由于在root权限下下载的东西,所以在普通用户下有锁标志,虽说在root下什么都可以操作使用,只要切换到root账户操作就ok了,但是看着就很别扭,如何去除? 1.看到有网友说使用 sudo chmo ...
- canvas 将图形设置为button_将Excel设置为存放文件的文件夹:自动提醒直观摘要免压缩发微信...
[友情提示]更多插入对象应用,敬请关注头条号@Excel财务VBA,了解后续文章介绍. 导读:一.文件夹的作用,二.win文件夹的局限,三.Excel准文件夹的应用需求,四.Excel准文件夹的设置方 ...
- QQ邮箱怎么发送文件夹 怎样在QQ邮箱里发送压缩文件夹
有很多用户想要知道怎么样才能通过QQ邮箱来发送自己的一些文件压缩包,应该怎么操作呢?不要慌,现在小编就给大家分享一下,下面一起来学习操作步骤吧! 其实,无论何种邮箱都无法发送文件夹,都只能对文件进行操 ...
- zip 打包_Thinkphp6利用ZipArchive打包下载文件
php中文网课程 每日17点准时技术干货分享 基础环境 系统环境:Windows10 x64 PHP集成环境:phpstudy PHP依赖管理工具:Composer (一) 下载tp6框架 compo ...
- 计算机文件夹快捷键加密视频,如何给文件夹设置密码 电脑
加密内容以便保护数据 注意事项 1.注意只可以加密NTFS分区卷上的文件和文件夹,FAT分区卷上的文件和文件夹无效. 被压缩的文件或文件夹也可以加密.如果要加密一个压缩文件或文件夹,则该文件或文件夹将 ...
- 我的世界服务器皮肤怎么用文件夹,我的世界皮肤正文件,皮肤制作器怎么打开文件夹...
打开versions,我的世界皮肤站怎么找皮肤文件夹里百面有个小茶壶形状的文件,用压度缩工具打开它,依次打知开assets,minecraft,,textures,entity,先将里面自带道的原皮肤 ...
- 新建一个文件夹服务器,云服务器中新建文件夹命令
云服务器中新建文件夹命令 内容精选 换一换 部署提供可视化.一键式部署服务,支持并行部署和流水线无缝集成,实现部署环境标准化和部署过程自动化.本节通过以下五步介绍如何使用部署服务将项目代码部署到云主机 ...
最新文章
- 怎样用ug画铝型材_用UG画钻头,适合初学UG的小伙伴,快来学习吧!
- 微信小游戏开发教程-游戏实现1
- 特征选择方法之信息增益
- 【转】POJ-2104(K-th Number 划分树)
- Bootstrap 学习之js插件(模态框(Modal)插件)
- DeeplabV3+ 在自己环境下跑出现的错误
- git——^和~的区别(转)
- 基于 FFmpeg 的播放器 demo
- 从零开始学PowerShell(8)创建一个进度条
- python函数myproduct_OpenERP与Python 元编程
- MonoRail学习笔记十七:TransformFilter的使用
- js中改变this的指向,有apply、call和bind这三种方法
- Python解释器配置设置
- 软件开发技术文档编写规范
- uni中一些插件的使用
- 高效能人士的七个习惯 读书笔记
- JavaScript程序库jQuery学习笔记分享(二)jQuery对象和DOM操作,和其他js库冲突处理
- 荣耀play5t活力版和荣耀畅玩20哪个好 哪个更值得入手
- SYN 洪水攻击如何工作?
- python购物街竟价项目_python制作视频教程下载地址