好的,让我解释一下。我的服务器上有两个文件夹,假设它们被称为f1 /和f2 /。 两个文件夹都有几个文件。我想ZipArchive这两个文件夹。但是,我能做的最好的事情是让.zip包含两个文件夹。我想要的是将所有文件和文件夹都包含在f1 /和f2 /中并归档它们,因此在.zip的根目录中的内容为f1 /和f2 /,而不是两个文件夹。
这是我目前正在使用的代码,就像我说的那样,它没有做我想要的:
$zipname = 'ZipArc.zip';
$zip = new ZipArchive;
$zip->open($zipname, ZipArchive::CREATE);
foreach ($array as $file => $value)
{
$zip->addFile("f1/" . $file . ".ini");
}
$iterator = new RecursiveIteratorIterator(new RecursiveDirectoryIterator("f2/Data/"));
foreach ($iterator as $key=>$value) {
$zip->addFile(realpath($key), $key);
}
}
$zip->close();
我进行了搜索和搜索,但似乎找不到合适的关键字来找到解决方案。
答案 0 :(得分:0)
仔细阅读文档:http://php.net/manual/en/ziparchive.addfile.php
bool ZipArchive::addFile($filename, $localname, ....)
^^^^^^^^^^
所以
$zip->addFile('/real/path/on/your/server/file.txt', '/path/within/zip/foo.bar');