PHP 產生壓縮檔
文章摘要
在某些需求,如要讓使用者下載多個檔案時,我們可以打包成一個檔案供用戶下載,或是檔案太大,可以壓縮檔案已減少頻寛。
需求
- php5.2 以上版本
- 安裝 zip 庫
以 Ubuntu
為例:
sudo apt update
sudo apt install -y php7.4-zip
壓縮範例程式
產生壓縮檔
<?php
//new ZipArchive 物件
$zip = new ZipArchive;
$zip->open('new.zip', ZipArchive::CREATE);
其中 $zip->open()
第一參數為要產壓縮檔路徑
第二參數為產生檔案的模式
ZipArchive::CREATE
:產生新檔案ZipArchive::OVERWRITE
: 若壓縮檔存在,則覆蓋檔案
加入一個空資料夾
$zip->addEmptyDir($dirname);
參數說明
$dirname
資料夾名稱
將檔案加入壓縮檔
$zip->addaddFile($filePath, $newFileName);
參數說明
$filePath
為檔案路徑$newFileName
重新命名 (選填)
將字串加入文字檔並壓縮
$zip->addFromString($filename, $content);
參數說明
$filename
檔案名稱$content
文字內容
依索引刪除檔案
$zip->deleteIndex($index);
參數說明
$index
刪除索引的檔案
依檔名刪除檔案
$zip->deleteName($name);
參數說明
$name
刪除檔案名稱
更改檔名
$zip->renameName($oldName, $newName);
參數說明
$oldName
原本檔名$newName
新檔名
關閉壓縮檔
$zip->close();
解壓縮程式
範例程式
$zip = new ZipArchive;
$zip->open($zipFile);
$zip->extractTo($filePath);
$zip->close();
參數說明
$zipFile
壓縮檔位置$filePath
解壓縮檔路徑