【发布时间】:2020-04-13 12:48:24
【问题描述】:
所以我有一个目录,它的根目录包含一个 files 文件夹,里面有一个包含 txt 文件的 test 文件夹,然后我有这个 php 代码:
function displayZip($name)
$zip = new ZipArchive();
$filename = "files/$name.zip";
if ($zip->open($filename, ZipArchive::CREATE)!==TRUE) {
exit("cannot open <$filename>\n");
}
$dir = "files/$name/";
createZip($zip, $dir);
$zip->close();
rmdir("files/$name");
}
function createZip($zip,$dir, $name){
if (is_dir($dir)){
if ($dh = opendir($dir)){
while (($file = readdir($dh)) !== false){
// If file
if (is_file($dir.$file)) {
if($file != '' && $file != '.' && $file != '..'){
$zip->addFile($dir.$file);
}
}
}
closedir($dh);
}
}
它为$name变量下的zip命名,然后指定$filename下的完整路径,然后创建zip存档,然后调用createZip函数打开与zip同名的目录,然后在 zip 中添加此目录下的文件,但是当我调用 displayZip(’test’) 然后打开创建的 zip 时,我看到它在其中添加了 files/test/ 文件夹。所以我的问题是:
- 它在代码中的什么位置添加这些文件夹,是在
addFile行的$dir.$file部分吗? - 我该怎么做才能只获取 zip 中的文件?
提前致谢
【问题讨论】: