PHP文件打包成zip,包含文件夹
使用ZipArchive class
- 开始先new一个$zip,$zip = new ZipArchive;
- 然后把(此文件如果是文件夹这里循环)文件夹路径,和$zip,还有就是初始的文件夹了 3. 循环文件夹文件 4. 去掉文件夹中的.和.. 5. 再判断此路径还有文件夹,如果是文件夹,再次执行本函数 6. 如果不是加入文件
- 完成后closedir();
- 最后$zip->close();
不多说了,上图
下面是代码可以复制
// 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 "文件夹不存在";
}
}