发布于:2023-06-30 10:57 阅读次数:502 作者:云码素材 分类:技术分享 关键词:文件压缩
PHP将文件夹的文件压缩到Zip包里代码
事情的经过是因为我正在写授权系统需要用到Zip相关的函数,因为Zip相关函数是PHP的扩展功能,之前没有了解过,还有太懒了一直拖着,
直到今天我才写出来实现相关功能。
以下是代码:
<?php /* *云码素材版权所有 */ # 将文件夹的文件压缩到文件里 class Zip { /** * 将目标文件夹下的内容压缩到zip中(zip包含文件夹目录) * @param $sourcePath *文件夹路径 例: /home/test * @param $outZipPath *zip文件名(包含路径) 例: /home/zip_file/test.zip * @return string */ public static function zipFolder($sourcePath, $outZipPath) { $parentPath = rtrim(substr($sourcePath, 0, strrpos($sourcePath, '/')),"/")."/"; $dirName = ltrim(substr($sourcePath, strrpos($sourcePath, '/')),"/"); $sourcePath=$parentPath.'/'.$dirName;//防止传递'folder'文件夹产生bug $z = new \ZipArchive(); $z->open($outZipPath, \ZIPARCHIVE::CREATE);//建立zip文件 $z->addEmptyDir($dirName);//建立文件夹 folderToZip($sourcePath, $z, strlen("$parentPath/")); $z->close(); return $outZipPath; } public static function folderToZip($folder, &$zipFile, $exclusiveLength) { $handle = opendir($folder); while (false !== $f = readdir($handle)) { if ($f != '.' && $f != '..') { $filePath = "$folder/$f"; // 在添加到zip之前从文件路径中删除前缀 $localPath = substr($filePath, $exclusiveLength); if (is_file($filePath)) { $zipFile->addFile($filePath, $localPath); } elseif (is_dir($filePath)) { // 添加子文件夹 $zipFile->addEmptyDir($localPath); self::folderToZip($filePath, $zipFile, $exclusiveLength); } } } closedir($handle); } }
我要加群:资源共享的时代,不要再单打独斗!加小编微信号加入群:xnynews(备注:云码素材入群),qq群号:202498279,一起技术学习,资源分享!
免责声明
本站提供的一切软件、教程和内容信息仅限用于学习和研究目的;不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负。本站信息来自网络收集整理,版权争议与本站无关。您必须在下载后的24个小时之内,从您的电脑或手机中彻底删除上述内容。如果您喜欢该程序和内容,请支持正版,购买注册,得到更好的正版服务。我们非常重视版权问题,如有侵权请邮件与我们联系处理。敬请谅解!
热门标签
推荐模板
Light Year Admin后台模板 v4 iframe版本 基于Bootstrap 4.4.1
2024-10-20 22:57 浏览:21
html清爽ui设计作品集展示网站模板 响应式宣传网页制作代码模板
2024-09-23 10:12 浏览:228
热门文章
2022-05-10 08:48 浏览:30990
2Tik Tok 深田咏美抖音视频100+合集资源免费下载【绿色】
2022-10-31 08:42 浏览:29614
2022-03-27 09:29 浏览:15685
2022-09-11 15:02 浏览:12807
2020-04-13 15:31 浏览:11967
6免费使用chatgpt3种方式 chatgpt国内入口无需梯子
2023-04-23 17:52 浏览:10677
2022-09-08 10:28 浏览:9332
8三个开源的php论坛bbs源码 可自建 圈子 帖子社区网站!
2020-09-15 21:34 浏览:9322
2022-04-13 14:31 浏览:9177
2019-08-28 17:28 浏览:8646