php中生成zip其實很簡單,只要下面2步就能完成。
1.請先下載我准備好的zip.php工具類,下載後解壓,將裡面的文件放入對應的目錄中,我是放在虛擬目錄下的include文件夾中。
2.在你的php文件中加入下面代碼即可
require_once "./include/zip.php";
$zip = new PHPZip();
//$zip -> createZip("要壓縮的文件夾目錄地址", "壓縮後的文件名.zip"); //只生成不自動下載
$zip -> downloadZip("要壓縮的文件夾目錄地址", "壓縮後的文件名.zip"); //自動下載
實例:可以參考下面的偽代碼來看一個具體的使用場景:
Copy to Clipboard引用的內容:[www.bkjia.com]
require_once "./include/zip.php";
if (!$download) {
exit();
}
set_time_limit(60);
$tmpManager = new TmpManager(); //假設我們有一個類來完成後面的操作
$tempfolder = array();
$tempfile = array();
//假設我們是通過在頁面上選擇checkbox來下載已選的文件夾或文件,並一同打包
for($i = 0;$i < $checkboxnum;$i++) {
$value = ${"select".$i};
if ($value != '') {
$this_type = substr($value, 0, 1);
$this_id = substr($value, 1);
//將文件夾和文件的情況分開處理
if ($this_type == 'd') {
$tempfolder[] = $this_id;
}
elseif ($this_type == 'f') {
$tempfile[] = $this_id;
}
}
}
@mkdir($tempdir);
$curtempdir = "$tempdir/".$userid; //不同用戶在不同的臨時文件夾下操作
if (file_exists($curtempdir)) {
$tmpManager->DeleteDir($curtempdir); //刪除舊的文件夾
}
if (sizeof($tempfolder) > 0 || sizeof($tempfile) > 0) {
mkdir($curtempdir, 0777); //如果有要打包的文件貨文件夾,重新創建文件夾
}
if (sizeof($tempfile) > 0) {
$tmpManager->CopyFile($tempfile,$curtempdir); //將要下載的文件copy到創建的文件夾
}
if (sizeof($tempfolder) > 0) {
$tmpManager->CopyFolder($tempfolder,$curtempdir); //將要下載的文件夾copy到創建的文件夾
}
$zip = new PHPZip();
$zip -> downloadZip($curtempdir, "file_".date('Ymd').".zip"); //打包並下載
轉自:http://www.cnblogs.com/xiaosuo/