PHP,不同的目标添加文件到.zip?

时间:2013-04-10 17:59:12

标签: php zip

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

我进行了搜索和搜索,但似乎找不到合适的关键字来找到解决方案。

1 个答案:

答案 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');