#### 壓縮文件夾
```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