天天减肥网,内容丰富有趣,生活中的好帮手!
天天减肥网 > 教你在PHP ZipArchive解压缩时 去掉zip包里的多余目录层级

教你在PHP ZipArchive解压缩时 去掉zip包里的多余目录层级

时间:2023-08-04 00:37:46

相关推荐

教你在PHP ZipArchive解压缩时 去掉zip包里的多余目录层级

后端开发|php教程

PHP,ZipArchive

后端开发-php教程

软件服务器如何查询网站源码,ubuntu软件备份工具,爬虫技术分析数据,php代码编辑器 php版,拉萨seo教程lzw

h5电影源码,vscode 更改注释,wsl 安装 ubuntu,tomcat 修改 名称,sqlite存入数组,创课空间服务器,jquery插件中心,快速学习前端框架技术,python爬虫群,php程序培训费用,关键词优化排名推荐乐云seo,微信底部网站代码,网页头部代码,后台数据管理模板,html5 js 跳转页面跳转,职工信息管理系统源码,台湾直播程序源码lzw

推荐:《PHP视频教学》

试看秒源码,ubuntu 登陆ftp,tomcat部署安装包,咸阳爬虫店,php网页布局修改,建阳区一般seo联系方式lzw

写了个脚本,下载discuzQ,并解压到指定 git 仓储下,方便更新代码。

遇到一个问题,在解压 uniapp 这个zip包时,里面多了一层目录包装,如果直接解压到指定目录,也会造成多了一级目录,如下图:

那如何从zip包里解压,并去掉多余一层的目录uniapp_v2.xxxx,可以看下面的copy("zip://{$zipFile}#{$filename}", $newFileName);

__DIR__ . /zips, uniapp => __DIR__ . /uniapp,];downloadAndExtract(https://dl.discuz.chat/uniapp_latest.zip, uniapp);function downloadAndExtract($zipUrl, $key){ global $config; echo "正在下载: $zipUrl\n"; $zipData = file_get_contents($zipUrl); $zipFile = $config->zips . "/$key-" . date(Ymd-His) . .zip; file_put_contents($zipFile, $zipData); echo "正在解压到 {$config->$key} \n"; $zip = new ZipArchive; if ($key === uniapp) { if ($zip->open($zipFile) === true) { $folder = $zip->getNameIndex(0); for ($i = 1; $i numFiles; $i++) {$filename = $zip->getNameIndex($i);if (substr($filename, -1, 1) === /) { continue;}// $folder like => uniapp_v2.1.29/// $filename like => uniapp_v2.1.29/commitlint.config.js$newFileName = $config->$key . / . str_replace($folder, \, $filename);if (!file_exists(dirname($newFileName))) { mkdir(dirname($newFileName), 0644, true);}copy("zip://{$zipFile}#{$filename}", $newFileName); } $zip->close(); } }echo "-------------- SUCESS --------------\n";}

如果觉得《教你在PHP ZipArchive解压缩时 去掉zip包里的多余目录层级》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。