2013-10-14 137 views
2

我有多个文件被压缩成一个独特的文件(zip),但它似乎它创建一个新的文件,每次循环重新启动,我该怎么做?有关于这个没有足够的文档,这里是我的代码:如何使用Zend压缩过滤器压缩多个文件?

 $file1 = "test1.xls"; 
     $files2 = array(
      "test2.xls", "test3.xls" 
     ); 

     $filter = new Zend_Filter_Compress(array(
      'adapter' => 'Zip', 
      'options' => array(
       'archive' => BASE_PATH .'/public/' . $this->configuracoes->get('media') . '/temp/zipped'.date('d-m-Y-H-i-s').'.zip' 
      ) 
     )); 

     $compress = $filter->filter($file1); 
     foreach($files2 as $file){ 
      $compress = $filter->filter($file); 
     } 

这只会导致与test3.xls内有拉链。

回答

2

值得看看这个链接,似乎是你打开zip,添加文件,然后关闭它在循环外的相同的答案。

Create zip with PHP adding files from url

+1

不正是我想要的,但我只能通过这种方式解决了!我只想使用zend compress,但似乎zend没有足够的文档。不管怎么说,还是要谢谢你! :) –

2

一个老问题,但我发现这个在寻找类似的东西。

您可以将目录传递给filter函数,它将递归地添加该目录中的所有文件。

$compress = $filter->filter('/path/to/directory/');

+0

我要去测试它,当我回到那个项目! –

+0

不,它不会工作。如果我们传递目录路径,它不会递归地添加所有文件。它只会把目录路径放在文本文件中 – khanz

相关问题