PHP将多级目录打包成zip文件

2024-08-21 09:18
文章标签 php zip 打包 目录 多级

本文主要是介绍PHP将多级目录打包成zip文件,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

最近接触PHP,需要用到zip压缩,在网上搜索的一大堆,发现代码都不低于50行。  而且调用还很费事(基础太少看不懂)。让我收获的是Php提供有一个ZipArchive类,并有如下方法。

bool addEmptyDir( string $dirname )
bool addFile( string $filename [, string$localname= NULL[, int$start = 0 [, int $length = 0 ]]] )
mixed open( string $filename [, int$flags] )  

bool close(void )

回忆用java中写的思路,便摩擦php,实现如下:

|--调用

		//创建<span style="font-family: Arial, Helvetica, sans-serif;">ZipArchive对象</span>$zip = new ZipArchive();//参数1:zip保存路径,参数2:ZIPARCHIVE::CREATE没有即是创建if(!$zip->open("$exportPath.zip",ZIPARCHIVE::CREATE)){echo "创建[$exportPath.zip]失败<br/>";return;}//echo "创建[$exportPath.zip]成功<br/>";$this->createZip(opendir($exportPath),$zip,$exportPath);$zip->close();

|--执行

	/*压缩多级目录$openFile:目录句柄$zipObj:Zip对象$sourceAbso:源文件夹路径*/function createZip($openFile,$zipObj,$sourceAbso,$newRelat = ''){while(($file = readdir($openFile)) != false){if($file=="." || $file=="..")continue;/*源目录路径(绝对路径)*/$sourceTemp = $sourceAbso.'/'.$file;/*目标目录路径(相对路径)*/$newTemp = $newRelat==''?$file:$newRelat.'/'.$file;if(is_dir($sourceTemp)){//echo '创建'.$newTemp.'文件夹<br/>';$zipObj->addEmptyDir($newTemp);/*这里注意:php只需传递一个文件夹名称路径即可*/$this->createZip(opendir($sourceTemp),$zipObj,$sourceTemp,$newTemp);}if(is_file($sourceTemp)){//echo '创建'.$newTemp.'文件<br/>';$zipObj->addFile($sourceTemp,$newTemp);}}}

|--补充

开启PHP支持ZipArchive
在php.ini文件中将extension=php_zip.dll  开头的;的去掉。






这篇关于PHP将多级目录打包成zip文件的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1092750

相关文章

Flutter打包APK的几种方式小结

《Flutter打包APK的几种方式小结》Flutter打包不同于RN,Flutter可以在AndroidStudio里编写Flutter代码并最终打包为APK,本篇主要阐述涉及到的几种打包方式,通... 目录前言1. android原生打包APK方式2. Flutter通过原生工程打包方式3. Futte

Linux修改pip临时目录方法的详解

《Linux修改pip临时目录方法的详解》在Linux系统中,pip在安装Python包时会使用临时目录(TMPDIR),但默认的临时目录可能会受到存储空间不足或权限问题的影响,所以本文将详细介绍如何... 目录引言一、为什么要修改 pip 的临时目录?1. 解决存储空间不足的问题2. 解决权限问题3. 提

linux打包解压命令方式

《linux打包解压命令方式》文章介绍了Linux系统中常用的打包和解压命令,包括tar和zip,使用tar命令可以创建和解压tar格式的归档文件,使用zip命令可以创建和解压zip格式的压缩文件,每... 目录Lijavascriptnux 打包和解压命令打包命令解压命令总结linux 打包和解压命令打

MySQL zip安装包配置教程

《MySQLzip安装包配置教程》这篇文章详细介绍了如何使用zip安装包在Windows11上安装MySQL8.0,包括下载、解压、配置环境变量、初始化数据库、安装服务以及更改密码等步骤,感兴趣的朋... 目录mysql zip安装包配置教程1、下载zip安装包:2、安装2.1 解压zip包到安装目录2.2

将java程序打包成可执行文件的实现方式

《将java程序打包成可执行文件的实现方式》本文介绍了将Java程序打包成可执行文件的三种方法:手动打包(将编译后的代码及JRE运行环境一起打包),使用第三方打包工具(如Launch4j)和JDK自带... 目录1.问题提出2.如何将Java程序打包成可执行文件2.1将编译后的代码及jre运行环境一起打包2

配置springboot项目动静分离打包分离lib方式

《配置springboot项目动静分离打包分离lib方式》本文介绍了如何将SpringBoot工程中的静态资源和配置文件分离出来,以减少jar包大小,方便修改配置文件,通过在jar包同级目录创建co... 目录前言1、分离配置文件原理2、pom文件配置3、使用package命令打包4、总结前言默认情况下,

Python项目打包部署到服务器的实现

《Python项目打包部署到服务器的实现》本文主要介绍了PyCharm和Ubuntu服务器部署Python项目,包括打包、上传、安装和设置自启动服务的步骤,具有一定的参考价值,感兴趣的可以了解一下... 目录一、准备工作二、项目打包三、部署到服务器四、设置服务自启动一、准备工作开发环境:本文以PyChar

Python pyinstaller实现图形化打包工具

《Pythonpyinstaller实现图形化打包工具》:本文主要介绍一个使用PythonPYQT5制作的关于pyinstaller打包工具,代替传统的cmd黑窗口模式打包页面,实现更快捷方便的... 目录1.简介2.运行效果3.相关源码1.简介一个使用python PYQT5制作的关于pyinstall

javafx 如何将项目打包为 Windows 的可执行文件exe

《javafx如何将项目打包为Windows的可执行文件exe》文章介绍了三种将JavaFX项目打包为.exe文件的方法:方法1使用jpackage(适用于JDK14及以上版本),方法2使用La... 目录方法 1:使用 jpackage(适用于 JDK 14 及更高版本)方法 2:使用 Launch4j(

更改docker默认数据目录的方法步骤

《更改docker默认数据目录的方法步骤》本文主要介绍了更改docker默认数据目录的方法步骤,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一... 目录1.查看docker是否存在并停止该服务2.挂载镜像并安装rsync便于备份3.取消挂载备份和迁