HomePHP Page 3 - TAR File Management With PHP Archive_Tar
Zip Zap Zoom - PHP
Need to create or manipulate a TAR file through your Web browser? Take a look at the PEAR Archive_Tar class, which exposes a simple, yet extremely powerful, API to perform manipulation of TAR and TGZ archives through a PHP script. Possible applications include a TAR file viewer and a Web-based backup utility.
It's important to note that the file created in the previous example is an uncompressed archive - the files contained within it are not compressed to save space. If you'd like to create a compressed archive, Archive_Tar supports that option too, allowing you to apply GZIP or BZIP compression to the TAR archive.
Compressing the archive is a piece of cake - simply add the value "gz" or "bz2" as a second argument to the Archive_Tar object constructor when instantiating it, as illustrated below:
// include class
// create Archive_Tar() object
// specify filename for output file and compression method
$tar = new Archive_Tar("data.tar.gz", "gz");
// set up file list
$files = array("package.dtd", "package.xml", "filter.xsl",
// build archive
$tar->create($files) or die("Could not create archive!");
A quick check reveals that the archive file created in this example is much smaller than the one created in the previous example,
and a call to the "file" utility verifies that it is, indeed, a GZIP-compressed archive.
$ file data.tar.gz data.tar.gz: gzip compressed data, deflated, last modified: Thu Jan 1 05:30:00 1970
Note that in order for this to work, your PHP build must include support for the zlib and bzip2 compression libraries. Unix users can enable this support by recompiling PHP with the "--with-zlib" and "--with-bz2" arguments to the PHP "configure" script, respectively. Windows users get a better deal: pre-compiled extensions for these libraries are included by default in the Windows PHP distribution, and they can be enabled simply by uncommenting the extensions in the "php.ini" configuration file.
Further instructions on how to perform these procedures are available in the PHP manual and documentation.