网络源码
PHP将文件夹的文件压缩到Zip包里
时间:2024-07-05 21:23:45 作者:优米小编 来源:优米资源网 阅读:121 评论:0
事情的经过是因为我正在写授权系统需要用到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);
}
}
相关文章
-
-
06-27文件搜索神器 Everything v1.5.0.1383a
-
06-20Swoole_loader扩展安装图文教程 Swoole扩展文件下载
-
06-05[photoshop资源]【新春设计素材】2024龙年艺术字源文件,整整60套设计龙年素材
-
06-03[photoshop资源]2024龙年PS海报psd设计源文件
-
05-24单页源码加密屋zip文件加密API源码
-
04-19多层轮廓描边入场的logo揭示开场动画AE源文件
-
03-26桌面便签便笺 DesktopNoteOK_PortableV3.91 64位绿色单文件版
-
03-26简洁美观强大的文件管理器rs文件管理器2.1.0
-
03-26Amarokv0.8.6 – 一键隐藏安卓手机隐私文件和应用
-
02-13PS模板 68套春节新年除夕系列海报PSD源文件
-
相关评论
本栏最新更新
-
07-24PixPro 全开源图床---新版本V1.6
-
07-24网站禁止PC电脑访问,只允许手机访问代码
-
07-23小R照妖镜赞助版V5.0.6【免授权】
-
07-20zibll-V7.9最新版2024(含教程)
-
07-20PixPro 全开源图床系统源码,非常强大的压缩率
-
07-202024最新版虚拟便携空调小程序源码 支持流量主切换空调型号
-
07-18PHP姓名配对测试源码 可查看朋友到底喜欢谁的趣味源码
-
07-182024最新修复微信公众号无限回调系统源码下载 免授权开心版
-
07-18全开源TikTok跨境商城源码/TikTok内嵌商城+搭建教程/前端uniapp+后端
-
07-18PixPro 一个开源图床,非常强大的压缩率