当前位置:首页 > PHP教程 > 正文内容

php利用ZipArchive类实现文件压缩与解压_php教程,php,ZipArchive,文件,压缩,解压

搜教程4年前 (2020-01-21)PHP教程170

实例详解php中empty、isset、isnull三者之间的区别_php教程

如果变量是非空或非零的值,则empty()返回false;如果变量存在(非null),则isset()返回true,否则返回false;isnull()检测传入值是否是null,只有变量定义了,且值为null,才返回true。

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 (将指定空目录添加到压缩包中)

浅谈PHP程序员如何修炼?_php教程

本篇文章给大家带来的内容是浅谈PHP程序员如何修炼?有一定的参考价值,有需要的朋友可以参考一下,希望对大家有所帮助。

//将一个空的目录添加到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利用ZipArchive类实现文件压缩与解压的详细内容,更多请关注ki4网其它相关文章!

利用php实现验证邮箱格式是否正确_php教程

利用php实现验证邮箱格式是否正确可以通过【filter_var()】函数来实现,该函数可以通过指定的过滤器过滤一个变量,例如【fileter_var(variable, filter, options)】。

扫描二维码推送至手机访问。

版权声明:本文由搜教程网发布,如需转载请注明出处。

本文链接:https://www.sojiaocheng.cn/16973.html

分享给朋友:

“php利用ZipArchive类实现文件压缩与解压_php教程,php,ZipArchive,文件,压缩,解压” 的相关文章

php strcmp函数怎样用【php教程】,strcmp函数

php strcmp函数怎样用【php教程】,strcmp函数

php strcmp函数用于二进制平安字符串比较,其语法是strcmp(string1,string2),参数string1必需,是划定要比较的第一个字符串,string2必需,是划定要比较的第二个字符串。 php strcmp函数怎样用? 作用:比较两个字符串(辨别大小写) 语法:...

.net和php哪一个好?.net和php的简朴比较【php教程】,.net,php

.net和php哪一个好?.net和php的简朴比较【php教程】,.net,php

.net和php哪一个好?它们有什么区分?下面本篇文章就来给人人比较一下.net和php,引见一些.net和php的区分,让人人相识.net和php哪一个好,愿望对人人有所协助。 相识.net .Net是一个主要在Microsoft平台或Windows上运转的软件框架;它为一切支撑的言语...

PHP如何将字符串剖析为多个变量?(代码示例)【php教程】,PHP字符串解析为变量

PHP如何将字符串剖析为多个变量?(代码示例)【php教程】,PHP字符串解析为变量

parse_str()函数是PHP中的内置函数,其作用就是将查询的字符串剖析为变量。通报给此函数举行剖析的字符串采纳经由过程URL通报的查询字符串的花样。 语法 : parse_str($string, $array) 参数: 该函数接收如上语法所示的两个参数,个中必需供应第一个参数...

什么是RabbitMQ?RabbitMQ的简朴引见【php教程】,php7,php,node.js,rabbitmq

什么是RabbitMQ?RabbitMQ的简朴引见【php教程】,php7,php,node.js,rabbitmq

本篇文章带来的内容是引见RabbitMQ,让人人相识一些RabbitMQ的相干学问。有肯定的参考价值,有须要的朋侪能够参考一下,愿望对你有所协助。 RabbitMQ概览 RabbitMQ是一个高机能的分布式音讯中间件。它由Erlang编写,这类言语天生支撑分布式,而且机能极高(然则比较难上手...

编程自学网站有哪些?【php教程】,编程自学

编程自学网站有哪些?【php教程】,编程自学

关于想要进修编程的朋侪能够大多数人都邑斟酌挑选线下培训班,然则能够由于没有时候或许太贵了而摒弃了,实际上除了线下培训,网上也有很多能够进修的网站,本日的这篇文章就来给人人来引见一下网上有哪些编程自学的网站。 1、ki4网 ki4网供应大批免费、原创、高清的php视频教程,并按期举办公...

PHP接见数据缓存处置惩罚【php教程】,PHP,数据缓存处理

本文报告的是PHP接见数据缓存处置惩罚,应用Redis或Memcache作为MySQL的缓存,采纳是ThinkPHP框架。 要领一 采纳ThinkPHP的S要领: $savedata['uid']=session('uid'); $savedata['ip']=$_SERVER[...