2012-04-18 115 views
1

我必須使用php創建一個zip文件。這些文件位於我的Web服務器的一個目錄中。 我必須添加這些文件(動態)並創建一個zip文件。在php中創建ZIP文件,windows

使用小文件在php中完美工作,但是當我試圖使用大於200 MB的文件進行壓縮時,我將花更多時間來創建壓縮文件。

那麼有什麼辦法可以使用Windows系統命令,它可以通過PHP運行一個zip文件?這樣我們就可以輕鬆快速地創建zip文件而不會丟失內存。

請幫

+5

如果你需要添加20個文件,每個文件2GB,會發生什麼?僅僅因爲你改變了創建一個zip文件的方法,它不會被創建得更快(或者至少顯着更快)。如果你有大文件需要壓縮,那麼你只需要獲得性能提升 - 沒有兩種方法。 – 2012-04-18 08:31:09

回答

1

你可以嘗試實行某種形式的隊列,也許在你的數據庫。您排隊執行zip操作,而在後臺執行某種類型的cron作業時會執行壓縮操作,並在隊列完成時通知您的隊列。

這不會減少處理時間,但由於壓縮是一個CPU和I/O繁重的操作,它可能無法加速太多。使用這種技術,您不必讓用戶等到壓縮完成後,您可以例如在完成後發送電子郵件(鏈接到創建的zip文件)。

+0

感謝您的回覆,你能幫我一下如何使用PHP中的動態文件進行壓縮? – ramesh 2012-04-18 08:57:07

+1

@ramesh沒有'動態文件'這樣的東西,所以我不知道你的意思。使用[ZipArchive](http://www.php.net/manual/en/class.ziparchive.php),您可以將磁盤中的文件和內存中的數據添加到zip存檔中。 – CodeCaster 2012-04-18 09:21:03

+0

okey ..我的意思實際上。 ..但是如何從像cron這樣的操作創建一個zip文件?我的意思是在後臺運行? – ramesh 2012-04-18 09:51:20