The new version has been released with a lot of good stuff.
(wildcards, cache for zip writer, simplified syntax...)
A forum has been created
You can discuss about File_Archive, ask some questions about it... in the
newly created forum
File_Archive 1.3 is out
With File_Archive 1.3, you can now edit existing archives (add or remove files)
File_Archive 1.2 is out
File_Archive 1.2 now supports reading and writing to the following formats:
tar, tgz, tbz, bz2, gzip, ar, deb
File_Archive is now a PEAR package
pOOcl has been renamed File_Archive and is now part of PEAR.
See the PEAR page of File_Archive.
Dynamic generation of archive files for a gallery
One possible use of File_Archive is to dynamically generate archives that contain pictures or videos from a gallery.
The choice of the file format is important if you want an efficient generation. Let's see what are the possibilities:
Tar
Pros: generation very efficient, constant memory usage, no need to cache
Cons: no compression (but anyway images or video can hardly be compressed), not as widely used as Zip
Tgz, Tbz
Pros: very high compression ratio, constant memory usage
Cons: can't be cached, needs a lot of CPU at each generation
Zip
Pros: intermediate result can be cached, compressed, you can choose the compression level, widely used
Cons: compression ratio lower than for Tgz/Tbz
We will focus on Tar and Zip generation, Tgz and Tbz are too CPU expensive for an "on the fly" archive generation
Tar generation
Zip generation
The main advantages of the Zip generation is that it is not very expensive (due to the ability to cache the result), and
widely used. I think 2 viable options are to generate uncompressed Zip archives (since you don't reduce a lot the size of
picture and video files by compressing them) or to generate compressed Zip archive using a cache system.
Putting it all together
Since generating a zip or a tar archive is pretty much the same code, you can write a simple code that lets the user choose what
format he wants. The following code is taken from a code I really use in my gallery