PHP 產生壓縮檔


   2022-03-26 11:00:00       程式設計
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() 第一參數為要產壓縮檔路徑

第二參數為產生檔案的模式

  1. ZipArchive::CREATE:產生新檔案
  2. ZipArchive::OVERWRITE: 若壓縮檔存在,則覆蓋檔案

加入一個空資料夾

$zip->addEmptyDir($dirname);

參數說明

  1. $dirname 資料夾名稱

將檔案加入壓縮檔

$zip->addaddFile($filePath, $newFileName);

參數說明

  1. $filePath 為檔案路徑
  2. $newFileName 重新命名 (選填)

將字串加入文字檔並壓縮

$zip->addFromString($filename, $content);

參數說明

  1. $filename 檔案名稱
  2. $content 文字內容

依索引刪除檔案

$zip->deleteIndex($index);

參數說明

  1. $index 刪除索引的檔案

依檔名刪除檔案

$zip->deleteName($name);

參數說明

  1. $name 刪除檔案名稱

更改檔名

$zip->renameName($oldName, $newName);

參數說明

  1. $oldName 原本檔名
  2. $newName 新檔名

關閉壓縮檔

$zip->close();

解壓縮程式

範例程式

$zip = new ZipArchive;
$zip->open($zipFile);
$zip->extractTo($filePath);
$zip->close();

參數說明

  1. $zipFile 壓縮檔位置
  2. $filePath 解壓縮檔路徑