广告
返回顶部
首页 > 资讯 > 后端开发 > PHP编程 >如何使用php生成zip压缩包
  • 754
分享到

如何使用php生成zip压缩包

2024-04-02 19:04:59 754人浏览 独家记忆
摘要

目录压缩一个文件压缩多个文件压缩一个目录压缩并下载zip包压缩一个文件 我们将一个文件生成一个压缩包。 <?PHP $path = "c:/wamp/www/log

压缩一个文件

我们将一个文件生成一个压缩包。


<?PHP
$path = "c:/wamp/www/log.txt";
$filename = "test.zip";
$zip = new ZipArcHive();
$zip->open($filename,ZipArchive::CREATE);   //打开压缩包
$zip->addFile($path,basename($path));   //向压缩包中添加文件
$zip->close();  //关闭压缩包

上述代码将c:/wamp/www/log.txt文件压缩生成了test.zip,并保存在当前目录。

压缩多个文件

压缩多个文件,其实就是addFile执行多次,可以通过数组的遍历来实现。


<?php
$fileList = array(
    "c:/wamp/www/log.txt",
    "c:/wamp/www/weixin.class.php"
);
$filename = "test.zip";
$zip = new ZipArchive();
$zip->open($filename,ZipArchive::CREATE);   //打开压缩包
foreach($fileList as $file){
    $zip->addFile($file,basename($file));   //向压缩包中添加文件
}
$zip->close();  //关闭压缩包

压缩一个目录


<?php
function addFileToZip($path,$zip){
    $handler=opendir($path); //打开当前文件夹由$path指定。
    while(($filename=readdir($handler))!==false){
        if($filename != "." && $filename != ".."){//文件夹文件名字为'.'和‘..',不要对他们进行操作
            if(is_dir($path."/".$filename)){// 如果读取的某个对象是文件夹,则递归
                addFileToZip($path."/".$filename, $zip);
            }else{ //将文件加入zip对象
                $zip->addFile($path."/".$filename);
            }
        }
    }
    @closedir($path);
}
$zip=new ZipArchive();
if($zip->open('rsa.zip', ZipArchive::OVERWRITE)=== TRUE){
    addFileToZip('rsa/', $zip); //调用方法,对要打包的根目录进行操作,并将ZipArchive的对象传递给方法
    $zip->close(); //关闭处理的zip文件
}

压缩并下载zip包

我的时候,我们需要打包之后,提供下载,然后删除压缩包。

可以分为以下几步:

  1. 判断给出的路径,是文件夹,还是文件。文件夹还需要遍历添加文件。
  2. 设置相关文件头,并使用readfile函数提供下载。
  3. 使用unlink函数删除压缩包

<?php
function addFileToZip($path,$zip){
    $handler=opendir($path); //打开当前文件夹由$path指定。
    while(($filename=readdir($handler))!==false){
        if($filename != "." && $filename != ".."){//文件夹文件名字为'.'和‘..',不要对他们进行操作
            if(is_dir($path."/".$filename)){// 如果读取的某个对象是文件夹,则递归
                addFileToZip($path."/".$filename, $zip);
            }else{ //将文件加入zip对象
                $zip->addFile($path."/".$filename);
            }
        }
    }
    @closedir($path);
}
$zip=new ZipArchive();
if($zip->open('rsa.zip', ZipArchive::OVERWRITE)=== TRUE){
    $path = 'rsa/';
    if(is_dir($path)){  //给出文件夹,打包文件夹
        addFileToZip($path, $zip);
    }else if(is_array($path)){  //以数组形式给出文件路径
        foreach($path as $file){
            $zip->addFile($file);
        }
    }else{      //只给出一个文件
        $zip->addFile($path);
    }

    $zip->close(); //关闭处理的zip文件
}

以上就是如何使用php生成zip压缩包的详细内容,更多关于php生成zip压缩包的资料请关注编程网其它相关文章!

--结束END--

本文标题: 如何使用php生成zip压缩包

本文链接: https://www.lsjlt.com/news/124106.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 如何使用php生成zip压缩包
    目录压缩一个文件压缩多个文件压缩一个目录压缩并下载zip包压缩一个文件 我们将一个文件生成一个压缩包。 <?php $path = "c:/wamp/www/log...
    99+
    2022-11-12
  • 怎么使用php生成zip压缩包
    这篇文章给大家分享的是有关怎么使用php生成zip压缩包的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。php有什么用php是一个嵌套的缩写名称,是英文超级文本预处理语言,它的语法混合了C、Java、Perl以及p...
    99+
    2023-06-14
  • Java如何实现文件压缩为zip和解压zip压缩包
    本篇内容介绍了“Java如何实现文件压缩为zip和解压zip压缩包”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!压缩成.zip代码如下:pu...
    99+
    2023-07-02
  • vue-cli3中如何打包成zip压缩文件
    目录vue-cli3打包成zip压缩文件如何实现?思考vue-cli3打包优化vue-cli3打包成zip压缩文件 目前在我司,采用前后分离的方式开发,这就会面临一个问题。那就是部署...
    99+
    2022-11-13
    vue-cli3打包 zip压缩文件 vue-cli3打包成zip
  • PHP中zip压缩工具扩展包怎么用
    这篇文章主要介绍了PHP中zip压缩工具扩展包怎么用,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。PHP的zip压缩工具扩展包学习总算到了 PHP 的拿手好戏上场了,前面我们...
    99+
    2023-06-15
  • C# 使用原生 System.IO.Compression 实现 zip 的压缩与解压
    zip 是一个非常常见的压缩包格式,本文主要用于说明如何使用代码 文件或文件夹压缩为 zip压缩包及其解压操作,我们采用的是 微软官方的实现,所以也不需要安装第三方的组件包。 使用的...
    99+
    2022-11-13
  • 如何利用Java实现zip压缩解压缩
    小编给大家分享一下如何利用Java实现zip压缩解压缩,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!  zip压缩文件结构:一个zip文件由多个entry组成,每...
    99+
    2023-06-03
  • python如何使用Zip()压缩函数
    小编给大家分享一下python如何使用Zip()压缩函数,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!Zip()压缩函数zip()函数在一对一匹配连接多个迭代器方...
    99+
    2023-06-27
  • Win10如何使用自带压缩、解压zip压缩文件功能
      Windows系统自带不少工具,到了Win10,好用的功能依然保留,比如压缩/解压zip压缩文件的功能。压缩文件能为系统节省空间,这一功能必不可少。Win10如何使用压缩/解压zip压缩文件功能?   Win10压缩...
    99+
    2023-06-10
    Win10 压缩 功能 自带 压缩文件
  • 如何在Java中利用zip实现压缩和解压缩
    这篇文章主要介绍了如何在Java中利用zip实现压缩和解压缩,编程网小编觉得不错,现在分享给大家,也给大家做个参考,一起跟随编程网小编来看看吧!Java是什么Java是一门面向对象编程语言,可以编写桌面应用程序、Web应用程序、分布式系统和...
    99+
    2023-06-06
  • vue如何从后台下载.zip压缩包文件
    目录1.添加下载按钮2.(原始方法,会出现乱码)给按钮添加点击事件3.(更正版)用axios({})这种方式4.报跨域问题vue前后端分离,使用element的el-button组件...
    99+
    2022-11-13
  • 如何使用Linux中的压缩软件7-zip
    这篇文章主要讲解了“如何使用Linux中的压缩软件7-zip”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“如何使用Linux中的压缩软件7-zip”吧!7-zip 是一个开源压缩软件。它使用...
    99+
    2023-06-13
  • centos7如何解压一个zip格式的压缩包到当前目录
    centos7中解压一个zip格式压缩包到当前目录的方法:1、打开centos7终端;2、在centos7终端命令行中输入“unzip file1.zip”命令解压一个zip格式压缩包到当前目录即可。具体操作步骤:在centos7系统桌面中...
    99+
    2022-10-19
  • centos7如何解压一个zip格式的压缩包到指定目录
    centos7中解压一个zip格式压缩包到指定目录的方法:1、打开centos7终端;2、在centos7终端命令行中输入“unzip test.zip -d 目录名”命令解压一个zip格式压缩包到指定目录即可。具体操作步骤:在centos...
    99+
    2022-10-24
  • 使用压缩的方式将Windows下的zip压缩包上传到Linux系统的方法解析
    我们可以使用在Windows下压缩文件夹,然后到linux系统下解压缩的方式,完成整个上传工作。 第一步:在Windows系统下,将整个文件夹压缩成zip后缀的压缩包 方法一: 在文件夹xtemp上,右键,选中“发送到...
    99+
    2022-06-04
    zip压缩包 zip压缩包上传
  • 计算机中如何把两个文件压缩成一个压缩包
    这篇文章给大家分享的是有关计算机中如何把两个文件压缩成一个压缩包的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。方法:1、整理好要压缩的文件,把两个文件放在同一个目录下;2、选中要压缩的两个文件,鼠标右击,在打开的...
    99+
    2023-06-14
  • Win8如何使用Metro版压缩工具8 Zip(目前支持ZIP格式)
      软件设计一向忽视界面设计也就是UI设计,Win8颠覆这一思路,推出Metro界面。Metro界面使用应用商店里的Metro程序,那么大家经常使用的解压缩工具有Metro版吗如何使用   在Win8应用商...
    99+
    2022-06-04
    如何使用 版压缩 格式
  • 在java项目中使用ant包如何实现压缩和解压缩
    在java项目中使用ant包如何实现压缩和解压缩?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。java ant包中的org.apache.tools.zip实现...
    99+
    2023-05-31
    java ant ava
  • 如何用java给一个文件夹打成压缩包?
    import java.io.File;import java.io.FileInputStream;import java.io.FileNotFoundException;import java.io.FileOutputStream;...
    99+
    2023-09-05
    java zip
  • 如何在linux中使用tar.gz、tar、bz2、zip等解压缩命令
    如何在linux中使用tar.gz、tar、bz2、zip等解压缩命令?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。Linux下最常用的打包程序就是tar了,使用tar程序打出...
    99+
    2023-06-13
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作