標籤:dir code log name 指定 osi adf 建立 方法
// 壓縮檔夾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對象 /* * addFile(參數1,參數2) * 參數1:檔案完整路徑(含檔案名稱) * 參數2:自訂新檔案名稱(不含路徑就直接加在壓縮包根目錄,否則將在壓縮包中自動建立對應目錄) * */ $zip->addFile($path."/".$filename, $filename); } } } @closedir($path);}$zip = new ZipArchive();$dirname = ‘/Uploads/text_dir‘; // 需要打包的檔案夾$zip_name = ‘download/‘.$id.‘.zip‘; // 打包後的檔案$res = $zip->open($zip_name, ZipArchive::CREATE);if($res === TRUE){ addFileToZip($dirname, $zip); //調用方法,對要打包的根目錄進行操作,並將ZipArchive的對象傳遞給方法 $zip->close(); //關閉處理的zip檔案 // 瀏覽器下載 header(‘Content-Type: application/zip‘); header(‘Content-Disposition: attachment; filename=‘.$zip_name); header(‘Content-Length: ‘.filesize($zip_name)); readfile($zip_name);}else{ echo "<script>alert(‘建立壓縮包失敗‘);location.reload();</script>";exit;}
php內建壓縮類壓縮檔夾