PHP将文件夹的文件压缩到Zip包里
作者:小编日期:2023-06-30浏览:6035分类:其他分享
事情的经过是因为我正在写授权系统需要用到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);
}
}相关文章
- 12-07 假货暴利,比诈骗狠
- 11-24 房屋租赁合同模板word电子版房东责任协议出租房个人住房商铺
- 11-11 现在淘宝都这么缺流量呀?有点意外
- 11-07 宝塔纯净版v11.2.0一键安装脚本(20251029版本)
- 11-01 做自媒体须闯过的4道关
- 10-29 一个人有多少存款才可以彻底躺平呢?
- 10-23 3700+浏览器插件+油猴插件 打包分享
- 10-14 苹果手机 iPhone 维修129例
- 10-06 一个隐藏视频的小玩意
- 10-04 主流平台小程序掘金 可推广可自薅
- 09-27 偷偷告诉你一些行业的秘密
- 09-26 1000首电影解说背景音乐素材
取消回复欢迎你发表评论:
- 协助本站优化一下
- 最近发表
- 1《萌萌夹击》中文版
- 2安卓FliTik翻页时钟v1.5.1.2免费版
- 3闲鱼自动发货超实用工具来咯,太给力!
- 4超强AI grok4.1+s-Sora2 整合包
- 5RustDesk跨平台远程控制v1.4.4
- 6安卓扫描全能王v7.5.5高级版
- 7超自然行动组高清全套小抄全新含宝藏房持续更新简单易操作
- 8房屋租赁合同模板word电子版房东责任协议出租房个人住房商铺
- 915套牛肉面技术配方牛腩面技术配方清汤牛肉面红烧牛肉面全套教程
- 10建信基金答题抽红包
- 11三角洲注册回归抽红包
- 12平安口袋银行抽实物
- 13中行支付超给利抽立减金
- 14中国移动和包APP抽30元
- 15【风云作文宝】v1.1.0 智能写作助手 解锁VIP功能
Copyright© XGW9.COM版权所有〖小庚资源网〗
〖恒创科技〗为本站提供专业云计算服务
本站发布的内容来源于互联网,如果有侵权内容,请联系我们删除!E-mail:xgzyw6@outlook.com
关于我们|我要投稿|免责声明|XML地图










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