站內搜尋

Tuesday, July 20, 2021

[PHP] 如何將數個檔案進行打包 並產生ZIP壓縮檔 (使用PHP原生套件 ZipArchive )

假如需要數個檔案打包成一個壓縮檔,可利用PHP原生套件ZipArchive,使用方法很簡單,如下...
//實際所需要的code大概就下面四行 $zip = new ZipArchive(); if ($zip->open('my_zip_folder/myzip.zip', ZipArchive::OVERWRITE) === TRUE) { //指定打包之後的壓縮檔要放在my_zip_folder下面 檔名為myzip.zip addFileToZip('my_file_folder/', $zip); //my_file_folder 就是我們要打包的資料夾 裡面必需有兩個以上的檔案才能打包 $zip->close(); } //產生ZIP檔後讓瀏覽器執行下載動作 header('Location: my_zip_folder/myzip.zip'); //固定的function 不用改 function addFileToZip($path,$zip){ $handler = opendir($path); //開啟當前資料夾由$path指定。 while (($filename = readdir($handler)) !== false) { if ($filename != "." && $filename != "..") { //資料夾檔名字為'.'和'..',不要對他們進行操作 if (is_dir($path."/".$filename)) { // 如果讀取的某個物件是資料夾,則遞迴 addFileToZip($path."/".$filename, $zip); } else { //將檔案加入zip物件 $zip->addFile($path."/".$filename); } } } @closedir($path); }
PS.如果無法使用ZipArchive,請至php.ini裡面把extension=php_zip.dll前面的"分號"刪除,重新啟動Apache。

No comments:

Post a Comment