#### 压缩文件夹
```php
/**
* 封装压缩文件
* @param $name
* 作者:糜家智
* 时间:2021/8/19 15:24
*/
public function zipFile($name){
$zip = new \ZipArchive();
$file_name = ROOT_PATH.'public'.DS.'uploads'.DS.$name;
//压缩文件名
$filename = 'uploads/download';
if ($zip->open($filename, \ZipArchive::CREATE | \ZipArchive::OVERWRITE) === TRUE) {
if (file_exists($file_name)) {
Zip::addFileToZip($file_name, $zip);//执行递归压缩目录的操作
} else {
throw new NotFoundHttpException('该目录不存在或被删除');
}
}
//打包zip
$zip->close();
}
```
```php
class Zip extends Controller
{
public static function addFileToZip($path, &$zip,$root='')
{
$handler = opendir($path); //打开当前文件夹由$path指定。
!$root && $root = $path;
while (($filename = readdir($handler)) !== false)
{
if ($filename != "." && $filename != "..")
{//文件夹文件名字为'.'和‘..’,不要对他们进行操作
if (is_dir($path . "/" . $filename))
{// 如果读取的某个对象是文件夹,则递归
self::addFileToZip($path . "/" . $filename, $zip, $root);
}
else
{ //将文件加入zip对象
$pathFilename=$path . "/" . $filename;
$zip->addFile($pathFilename, str_replace($root.'/','',$pathFilename));
}
}
}
@closedir($path);
}
}
```
- 介绍
- PHP
- 过滤
- 访问第三方
- 封装概率
- 将反斜杠转成正斜杠
- 超长数字运算
- php高级
- 设计模式
- TP笔记
- tp5
- TP
- 时间操作
- 模型
- Base函数
- 字符串数组操作
- 数据库
- 查询
- 其它操作
- 文件类操作
- 上传
- 导出
- 压缩
- tp6
- 封装上传方法
- 浏览器下载文件
- deepin踩坑
- mysql安装相关
- layui
- layui表格操作
- layui表格点击图片放大
- layui点击数据表格添加或删除一行
- layui表格操作
- lemocms
- html相关
- 按钮
- js
- crud的js函数
- base相关函数
- layui关闭弹窗层并刷新父窗口
- 表单操作
- h5+js
- layui图片上传和预览
- 多图上传
- 自定义
- vscode
- vs更换电脑时,同步配置
- 前端
- vue-admin后台
- 相关操作
- js相关
- js播报语音
- js监听页面扫码枪
- fastadmin
- fast的js
- Typora
- 数据库
- MySQL