使用Zend Filter Compress压缩多个文件

时间:2014-03-04 10:52:36

标签: php zend-framework zip

有没有办法使用Zend_Filter_Compress类在一个zip存档中压缩多个文件?

官方文档只讨论一个文件或一个文件夹。

使用数组作为调用方法的参数不起作用,因为存档只包含数组中的最后一个文件。

$filter     = new Zend_Filter_Compress(array(
    'adapter' => 'Zip',
    'options' => array(
        'archive' => 'test.zip'
    ),
));
$b=array('C:\temp\compress1.txt','C:\temp\compress2.txt');
$compressed = $filter->filter($b);

1 个答案:

答案 0 :(得分:1)

据我所知,Zend_Filter_Compress仅支持字符串,单个文件或文件夹(包含子文件夹)进行压缩。

但您可以使用ZipArchive类创建存档。

请参阅:http://www.php.net/manual/de/class.ziparchive.php

$files = array('a.txt', 'b.txt', 'c.txt');
$zip = new ZipArchive();
$zip->open('archive.zip', ZipArchive::CREATE);
foreach ($files as $file) {
    $zip->addFile($file);
}
$zip->close();