1. 程式人生 > >使用ZipArchive壓縮打包想要的資料夾或檔案

使用ZipArchive壓縮打包想要的資料夾或檔案

PHP檔案打包成zip,包含資料夾

使用ZipArchive class
  1. 開始先new一個$zip,$zip = new ZipArchive;
  2. 然後把(此檔案如果是資料夾這裡迴圈)資料夾路徑,和$zip,還有就是初始的檔案夾了 3. 迴圈資料夾檔案 4. 去掉資料夾中的.和.. 5. 再判斷此路徑還有資料夾,如果是資料夾,再次執行本函式 6. 如果不是加入檔案
  3. 完成後closedir();
  4. 最後$zip->close();

不多說了,上圖

Alt text

下面是程式碼可以複製

// Add file to ZIP
function add_file_to_zip($path,$zip,$base_path)
{
	if(is_dir($path))
	{
		$handler = opendir($path);
		while(($file = readdir($handler)) !== false )
		{
			if($file != "." && $file != "..")
			{
				if(is_dir($path."/".$file))
				{
					$this->add_file_to_zip($path."/".$file, $zip, $base_path);
				}
				else
				{
					$dir_path = explode($base_path, $path);
					//var_dump($dir_path);
					$zip->addFile($path."/".$file,$dir_path[1].'/'.$file);
				}
			}
		}
		closedir($path);
	}
	else
	{
		echo "資料夾不存在";
	}
}