问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

php5.6.30 ZipArchive如何解压文件

发布网友 发布时间:2022-04-23 04:05

我来回答

2个回答

懂视网 时间:2022-04-29 13:46

ZipArchive类是专门用于文件的压缩与解压操作的类,通过压缩文件可以达到节省磁盘空间的目的,并且压缩文件体积更小,便于网络传输。

在ZipArchive类中我们主要使用如下方法:

1:open(打开一个压缩包文件)

$zip = new ipArchive;
$zip->open('test_new.zip', ipArchive::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 ipArchive;
if ($zip->open('test_new.zip', ipArchive::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 ipArchive;
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 ipArchive;
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教程

热心网友 时间:2022-04-29 10:54

$this代表自身的对象。$this->abc,是存取对象上的属性和方法。$this->$name 是以$name的内容作为对象的属性名称,存取对象属性比如先指定$name=‘address’;$this->$name 就等价于$this->address;书上不会说'不能有$',会说存取对象成员时'不写$';就是这样的了,楼主可以去后盾人看看专家录制的教学视频,对你绝对有帮助,还送价值两千元的后盾人会员卡
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
圣斗士星矢正义传说攻略_圣斗士星矢正义传说新手攻略 圣斗士星矢正义传说怎么觉醒圣衣 圣衣玩法攻略 圣斗士星矢正义传说召唤石怎么获得 获取攻略一览 超市促销员手机上打卡迟到几分钟 在超市里打卡显示的公司是什么意思? 长鹿休闲度假农庄交通指南 求从容桂到长鹿农庄怎么坐车,详细,准确 形容神情的五字词语 女生内衣穿多久该扔掉 吴江离张家港有多远? 银行给贷款五万,年费率3.0是什么意思? 计算机中丢失ZipArchive.dll该怎么办? 银行贷款利率是多少,利息怎么算 怎么判断ziparchive php扩展是否打开 银行贷款利率是如何计算的,利率中的6%是什么意思,是说的几分利吗... php打包压缩文件之ZipArchive方法用法分析 银行贷款利率4.35%是什么意思 怎么开启 php ziparchive 贷款公司费率是什么 贷款月费率0.55%是什么意思? 贷款费率怎么计算? 银行贷款的折算年化费率16.2是什么意思? 冰糖糯米藕怎么做好吃 煮糖藕的做法 蜜汁莲藕的做法,蜜汁莲藕怎么做好吃,蜜汁莲藕 葡萄蜜汁藕是怎样制作的? 还有蜜汁莲藕怎么做才能好吃 老王的蜜汁藕怎么做 蜜汁藕的做法没有高压锅 蜜汁糖藕怎么做 银行贷款利率是多少,计算公式是什么 PHP的ZipArchive无法打开文件的错误,有谁遇到过的 ios ziparchive 解压图片名中文乱码怎么解决 网上的 一般银行贷款利率是多少 该怎么计算 关于PHP的zipArchive() ios 为什么使用ziparchive压缩出来的文件无法解压?代码有问题吗? rio是多少度? rio是什么意思的? 我是用ZipArchive()解压缩.zip格式的压缩包时总是报错,不知是怎么回事,求高手解决 报错如图所示: ios ziparchive 怎么压缩文件夹?是文件夹不是文件哈 锐澳鸡尾酒多少度? 导入ZipArchive后出现错误,求助 RIO预调鸡尾酒的产品特色是什么?? rio是什么意思? php 压缩文件夹 php ZipArchive 能否在指定目录生成压缩包 rio多少度? php将文件夹打包成zip文件的简单实现方法 RIO锐澳(预调酒)还要调配吗? RIO是鸡尾酒还是预调酒?