TOP
首頁 > PHP 擴充功能收集與分享 > 壓縮指定目錄或指定目錄內的目錄

壓縮指定目錄或指定目錄內的目錄

2023-01-07 255

相關文章

當網站只有一個資料夾需要壓縮時使用,例如根目錄...
// 包涵壓縮資料夾類
require_once('zip.php');
// 實例化物件
$zip = new Zip();
// 準備壓縮的來源資料夾
$sourceDir = 'public_html';
// 壓縮後檔案存放資料夾與檔案名稱
$outZipPath = 'path/html.zip';
// 開始壓縮
$zip::zipDir($sourceDir, $outZipPath);

有時候如果從網站根目錄壓縮的話,可能會因為檔案太多或太大造成問題,此時可以將網站內的目錄分開壓縮,使用下列這個函數即可輕鬆將資料夾個別壓縮...
<?php
/* 壓縮指定目錄下的資料夾
* $dir 	將要壓縮此目錄下的資料夾
*/
function listDir($dir)
{
	if (is_dir($dir)) {
		if ($dh = opendir($dir)) {
			// 不加入壓縮的資料夾
			$exclude = array('images', 'template');
			while (($file = readdir($dh)) !== false) {
				if ($file != "." && $file != "..") {
					$fd = '';
					$fd = $dir.'/'.$file;
					// 是資料夾才壓縮,第一層的檔案不會被壓縮
					if(is_dir($fd)){
						// 排除不壓縮的資料夾
						if(!in_array($fd, $exclude)){
							// 包涵壓縮資料夾類
							require_once('zip.php');
							// 實例化物件
							$zip = new Zip();
							// 壓縮後檔案存放資料夾與檔案名稱
							$out = $fd.'.zip';
							// 開始壓縮
							$zip::zipDir($fd, $out);
						}
					}
				}
			}
			closedir($dh);
		}
	}
}
// 壓縮指定目錄下的資料夾
listDir('public');
?>
如果你對壓縮指定目錄或指定目錄內的目錄有任何問題請到討論區發帖。