2012-05-16 54 views
4

是否anybod知道如何使用PHP ZIP功能來應用標準zip選項」創建zip文件時。到目前爲止,我所有的搜索都沒有發現任何東西。PHP和ZIP創建:可以應用標準zip「選項」

特別是我很感興趣地應用了「-ll」和「-l」選項,以便我能提供的壓縮基於文本的文件,無論是勝利或NIX版本(CGI和PHP和文本文件等)來自nix網站。這些內容將隨着一些文件的編輯添加到每個特定的客戶上。

我知道建設和使用命令行「背打勾」的(的Perl)或「中繼()」(PHP)方法,但我希望有一招爲此使用純PHP即ZipArchive()。

問候。

+1

難道你不能只爲'-l'和'str_replace(「\ r \ n」,「\ n」,$ fileContents)提供'str_replace(「\ n」,「\ r \ n」,$ fileContents) )'''-ll'?這基本上是選項所做的。很顯然,*之前* zip操作。 – DaveRandom

回答

0

我認爲str_replace()很明顯。但是,這對大型文件來說是內存密集型的。

我不會顯示所有的代碼,但php有很少使用的功能,您可以將「過濾器」應用到流中,並且可以將過濾器指定爲文件url的一部分。它爲掛鉤到某些文件系統操作提供了一種很好的方式,否則這些操作不會輕鬆調整行爲。

一旦你定義了一個帶有stream_filter_register()的過濾器,那麼你應該能夠將php://filter/string.to_unix_line_endings/resource=/path/to/the/file.txt這樣的文件url傳遞給ZipArchive::addFile()方法。

最終,您也可以創建一個臨時文件,並將文件內容以塊的形式複製到str_replacing中,然後將臨時文件名稱傳遞給ZipArchive::addFile()方法。這將更容易編碼。