0

好吧,让我解释一下。我的服务器上有两个文件夹,假设它们分别称为 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();

我已经搜索和搜索,但我似乎无法找到正确的关键字来找到解决方案。

4

1 回答 1

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');
于 2013-04-10T18:00:54.107 回答