TAR File Management With PHP Archive_Tar - Zip Zap Zoom (
Page 3 of 8 )
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:
<?php
// include class
require("Tar.php");
// 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",
"../../includes/php/adodb.php");
// 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,
$ ls -l data.tar.gz
-rwxrw-rw- 1 nobody nobody 19951 Jul 8 2003
data.tar.gz
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.