<?php
$zip = new ZipArchive();
$zipName = "..".DIRECTORY_SEPARATOR."test_excel.zip";
$sfolder = '..'.DIRECTORY_SEPARATOR.'Excel';
$zip->open($zipName,ZipArchive::CREATE);
modifiyFileName($sfolder,$zip);
$zip->close();
function modifiyFileName($path,&$zip){
if(!is_dir($path)){
return false;
}
if($dh = opendir($path)){
while (($file = readdir($dh)) !== false){
if(in_array($file,['.','..',null])) continue;
if(is_dir($path.DIRECTORY_SEPARATOR.$file)){
$zip->addEmptyDir($path.DIRECTORY_SEPARATOR.$file);
modifiyFileName($path.DIRECTORY_SEPARATOR.$file,$zip);
}else{
$zip->addFile($path.DIRECTORY_SEPARATOR.$file,$path.DIRECTORY_SEPARATOR.$file);
}
}
}
}
使用上面的代码压缩一个当前目录的上级目录中的一个文件夹,生成的ZIP压缩包打开首先看到的是一个名为“.."的文件夹,打开这个文件夹后才是要压缩的文件夹。如何避免产生”..“文件夹。