2013-10-14 81 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