当前位置:首页 > 技术分享

php利用ZipArchive类操作文件的实例

admin3年前 (2022-09-06)技术分享1945

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

function filestozip($fileList,$filename=''){
        if(empty($fileList))return false;
        if(empty($filename))$filename=time().'.zip';
        $filename = "/uploads/temp/".$filename; // 压缩包所在的位置路径
        if(file_exists($filename))return $filename; 
        $zip = new \ZipArchive();
        $zip->open($filename,\ZipArchive::CREATE);   //打开压缩包
        foreach($fileList as $file){
            if(substr($file,0,4)=='http'){
                $ch = curl_init();
            	curl_setopt($ch, CURLOPT_POST, 0); 
            	curl_setopt($ch,CURLOPT_URL,$file); 
            	curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 
		        curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
		        curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE);
            	$fileContent = curl_exec($ch);
            	curl_close($ch);
                $zip->addFromString(basename($file), $fileContent);
            }else{
                $zip->addFile($file,basename($file));   //向压缩包中添加文件
            }
        }
        $zip->close();  //关闭压缩包]
        return $filename;
    }

有些接口还需要把压缩文件转为base64 便于传输

    function ZipFileToBase64String($filename){
        $base64 = null;
        $fileinfo = fopen($filename,"r");
        if($fileinfo){
            $filesize = filesize($filename);
            $content = fread($fileinfo,$filesize);
            $base64 = chunk_split(base64_encode($content));
        }
        fclose($fileinfo);
        return $base64;
    }


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

版权声明:本文由小刚刚技术博客发布,如需转载请注明出处。

本文链接:https://blog.bitefu.net/post/411.html

分享给朋友:

“php利用ZipArchive类操作文件的实例” 的相关文章

centos 配置Let's Encrypt 泛域名https证书

centos 配置Let's Encrypt 泛域名https证书

前言2018年1月份Letsencrypt可以申请泛域名证书,这让我们部署多域名、多站点https省了很多功夫,终于可以不用维护多个域名的https证书。笔者以acme.sh为例,手把手教你配置https证书~本教程适用于centos 6.…

系统小技巧:微软版“Ghost” Windows FFU 系统安装还原

系统小技巧:微软版“Ghost” Windows FFU 系统安装还原

在日常的维护中,系统的备份和还原是大家经常需要操作的事情。虽然Windows 10已经提供很多的工具,如系统还原、WIM备份/还原,VHD备份等。不过这些工具大多是基于文件的备份/还原。我们以前经常的使用的Ghost则是基于扇区的备份/还原…

PHP AES加解密 (ECB模式/sha1prng算法/PKCS5Padding和PKCS7Padding补码) ECB 模式不需求设置 iv

php7+ 版本/**  * [AesSecurity aes加密,支持PHP7+]  * 算法模式:ECB  * 密钥长度:128  * 补…

Nginx服务崩溃自动重启脚本(监控进程服务并自动重启进程服务)脚本

有一台服务器运行着Ngin最近突然有一次崩溃,导致使用方当天无法访问网页端,然后我不得不登录服务器,检查各项服务,发现nginx崩溃了,于是重启Nginx,问题解决。后来为了防止Nginx再发生这种情况给运维带来的运维成本,于是写了一个脚本…

用apicloud 免费,简单封装一个wap手机网站成android app

用apicloud 免费,简单封装一个wap手机网站成android app

APICloud是国内较早布局低代码开发的平台之一,其发布的低代码效率工具Plus Mode,为IT项目中每个角色提供专业工具,将需求分析、产品原型、UI设计、前端开发、后端开发紧密衔接,并基于行业大数据对前置环节进行复用,最终缩减大量重复…

阿里云盘 分享脚本 抢先实现文件分享功能

Win端基本所有浏览器均可进行安装安装地址:https://bbs.tampermonkey.net.cn/thread-427-1-1.html如何安装:Tampermoneky安装:谷歌浏览器参考:https://bbs.tamperm…

发表评论

访客

看不清,换一张

◎欢迎参与讨论,请在这里发表您的看法和观点。