TAR/GZIP/BZIP2/ZIP ARCHIVE CLASSES Examples
Examples of Compression:
The following example creates a gzipped tar file:
// Assume the following script is executing in /var/www/htdocs/test
// Create a new gzip file test.tgz in htdocs/test
$test = new gzip_file("htdocs/test/test.tgz");
// Set basedir to "../..", which translates to /var/www
// Overwrite /var/www/htdocs/test/test.tgz if it already exists
// Set compression level to 1 (lowest)
$test->set_options(array('basedir' => "../..", 'overwrite' => 1, 'level' => 1));
// Add entire htdocs directory and all subdirectories
// Add all php files in htsdocs and its subdirectories
$test->add_files(array("htdocs", "htsdocs/*.php"));
// Exclude all jpg files in htdocs and its subdirectories
$test->exclude_files("htdocs/*.jpg");
// Create /var/www/htdocs/test/test.tgz
$test->create_archive();
// Check for errors (you can check for errors at any point)
if (count($test->errors) > 0)
print ("Errors occurred."); // Process errors here
The following example creates a zip file:
// Create new zip file in the directory below the current one
$test = new zip_file("../example.zip");
// All files added will be relative to the directory in which the script is
// executing since no basedir is set.
// Create archive in memory
// Do not recurse through subdirectories
// Do not store file paths in archive
$test->set_options(array('inmemory' => 1, 'recurse' => 0, 'storepaths' => 0));
// Add lib/archive.php to archive
$test->add_files("src/archive.php");
// Add all jpegs and gifs in the images directory to archive
$test->add_files(array("images/*.jp*g", "images/*.gif"));
// Store all exe files in bin without compression
$test->store_files("bin/*.exe");
// Create archive in memory
$test->create_archive();
// Send archive to user for download
$test->download_file();
Examples of Decompression:
The following example extracts a bzipped tar file:
// Open test.tbz2
$test = new bzip_file("test.tbz2");
// Overwrite existing files
$test->set_options(array('overwrite' => 1));
// Extract contents of archive to disk
$test->extract_files();
The following example extracts a tar file:
// Open archives/test.tar
$test = new tar_file("archives/test.tar");
// Extract in memory
$test->set_options(array('inmemory' => 0));
// Extract archive to memory
$test->extract_files();
// Write out the name and size of each file extracted
foreach ($test->files as $file)
print ("File " + $file['name'] + " is " + $file['stat'][7] + " bytes\n");
|