PHP将文件夹的文件压缩到Zip包里
作者:小编日期:2023-06-30浏览:6245分类:其他分享
事情的经过是因为我正在写授权系统需要用到Zip相关的函数,因为Zip相关函数是PHP的扩展功能,之前没有了解过,还有太懒了一直拖着,直到今天我才写出来实现相关功能。
以下是代码:
<?php
/*
* Cumin云版权所有
*/
# 将文件夹的文件压缩到文件里
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);
}
}相关文章
- 10-03 【娱乐】一个网页让你可以“炸掉”网站
- 09-30 视频号的封号申诉话术
- 09-18 《一看就懂的投资理财学全图解》全彩图文版
- 09-16 【激活码】win10/win11专业版
- 09-14 有了AI,程序员的路该何去何从
- 08-02 闲鱼自动发货系统/自动回复/闲鱼AI回复系统源码
- 06-11 全网音乐搜索器最新修复版
- 06-11 上百套求职简历模板word电子版可编辑打印
- 04-23 限时开放微信福利群聊 定时发放实物等福利
- 03-18 未来五年好好活下去
- 03-17 明日更新可可或者小夕新舞蹈 进微信福利群
- 03-16 QQ 机器人 支持三盘(夸克百度UC)2.1版本
取消回复欢迎你发表评论:
- 协助本站优化一下
- 最近发表
- 1《我在西游当妖怪》中文版
- 2《巫师3:狂猎 — 重制版》
- 3多平台直播聚合应用 AllLive v3.1.0.1
- 4小奕连点器v7.1.3会员版 可以录制的点击器
- 58G显存可玩MiniMax-H3视频角色替换表情迁移整合包本地部署数字人
- 6【娱乐】一个网页让你可以“炸掉”网站
- 7暴力无脑反撸狗庄1000+
- 8《牛来了!》中文版
- 9鬼泣HD合集/鬼泣1/鬼泣2/鬼泣3
- 10阿里云Qoder领取奶茶免单卡
- 11梦境AI系统-一个在线制作的AI系统
- 12pyVideoTrans影片翻译配音软件AI多语音多语音字幕win系统
- 13免费分享成人情趣商城系统源码02
- 14桌面图标美化工具v1.0.0
- 15视频号的封号申诉话术
Copyright© XGW9.COM版权所有〖小庚资源网〗
〖恒创科技〗为本站提供专业云计算服务
本站发布的内容来源于互联网,如果有侵权内容,请联系我们删除!E-mail:xgzyw6@outlook.com
关于我们|我要投稿|免责声明|XML地图








暂无评论,来添加一个吧。