分享web开发知识

注册/登录|最近发布|今日推荐

主页 IT知识网页技术软件开发前端开发代码编程运营维护技术分享教程案例
当前位置:首页 > 软件开发

PHP使用 zip 扩展压缩文件

发布时间:2023-09-06 01:45责任编辑:彭小芳关键词:PHP

在公司遇到一个问题,是使用zip打包用户的上传文件,提供集体下载。

--

第一个想法就是使用exec在Linux进行打包。但是...exec方法吧,你懂得,我不太愿意使用这个函数。

--

于是上网查找,结果就是,我低估了PHP对于IO的操作,给我的教训是,以后遇到什么问题应该先考虑怎么从代码层面解决,如果不行再考虑其他的。

--

安装zip扩展的方法不多说,网上一搜一大片。

--

这里主要说它的简单实用方法【学习东西应该尝试去PHP官方文档查看,那里给出了全面的Demo,不应该一直依赖Baidu.com】

这里也贴出官方对于zip的具体地址:http://php.net/manual/zh/book.zip.php

--

这里简单介绍zip

  实例化

$zip = new \ ZipArchive();

  open方法,看一下官方对于这个方法的解释

mixed ZipArchive::open ( string $filename [, int $flags ] )

  第一个当然是你要打开的zip文件路径,第二个可选参数

    记录几个常用参数

      ZIPARCHIVE::CREATE (integer)如果不存在则创建一个zip压缩包。

      ZIPARCHIVE::OVERWRITE (integer)总是以一个新的压缩包开始,此模式下如果已经存在则会被覆盖。

    还有很多,这里就不列举了,需要的话可以在文档上去查

  这里我们建立我的.zip

$res = $zip->open(‘test.zip‘, $zip::CREATE);

  循环写入我需要打包的内容

if ($res === TRUE) { ???foreach (‘打包目录‘ as ‘目录文件‘) { ???????$zip->addFile(‘打包文件路径‘, ‘名字‘); ???} ???$zip->close();}

  这样在你的根目录下就会有一个 text.zip的压缩包。

  这里只简单的说明了打包文件的用法,在之后的使用过程中肯定会使用更多的地方。

  下面贴上整体代码,里面可能有我的业务部分在里面。筛选一下就可以了

 ???????$attachments = those(‘attachment‘)->whose(‘performance‘)->is($performance); ???????$zip = new \ ZipArchive(); ???????// 创建zip-如果没有则创建 ???????$file_path = DATA_DIR . "/attachment/{$performance->id}/"; ???????$file_name = ‘绩效考核-‘.$performance->name.‘-‘.time().‘.zip‘; ???????$res = $zip->open($file_path . $file_name, $zip::CREATE); ???????if ($res === TRUE) { ???????????foreach ($attachments as $key => $attachment) { ???????????????$zip->addFile($attachment->path.‘/‘.$attachment->name, $attachment->name); ???????????} ???????????$zip->close(); ???????}

  

PHP使用 zip 扩展压缩文件

原文地址:https://www.cnblogs.com/25-lH/p/8568753.html

知识推荐

我的编程学习网——分享web前端后端开发技术知识。 垃圾信息处理邮箱 tousu563@163.com 网站地图
icp备案号 闽ICP备2023006418号-8 不良信息举报平台 互联网安全管理备案 Copyright 2023 www.wodecom.cn All Rights Reserved