Home arrow PHP arrow Page 2 - TAR File Management With PHP Archive_Tar

Back To Basics - 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.

TABLE OF CONTENTS:
  1. TAR File Management With PHP Archive_Tar
  2. Back To Basics
  3. Zip Zap Zoom
  4. Adding It All Up
  5. Building An Index
  6. In And Out
  7. X-Ray Vision
  8. ... And Packing Up
By: The Disenchanted Developer, (c) Melonfire
Rating: starstarstarstarstar / 41
July 17, 2003

print this article
SEARCH DEV SHED

TOOLS YOU CAN USE

advertisement

The Archive_Tar class is brought to you by PEAR, the PHP Extension and Application Repository (http://pear.php.net). In case you didn't know, PEAR is an online repository of free PHP software, including classes and modules for everything from data archiving to XML parsing. When you install PHP, a whole bunch of PEAR modules get installed as well; the Archive_Tar class is one of them.

In case your PHP distribution didn't include Archive_Tar, or if you chose not to install the PEAR component, you can get yourself a copy from the official PEAR Web site, at http://pear.php.net - simply unzip the distribution archive into your PEAR directory and you're ready to roll!

Let's begin with something simple - packing a bunch of files into a single TAR archive with Archive_Tar object methods (this tutorial uses Archive_Tar 1.11).


<?php

// include class
require("Tar.php");

// create Archive_Tar() object
// specify filename for output file
$tar = new Archive_Tar("data.tar");

// 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!");

?>

This is a pretty simple script, but I'll hit the high points anyway:

1. The first step, as always, is to include the required class file in your script.


<?php

// include class
require("Tar.php");

?>

You can either provide an absolute path to this file, or do what most lazy programmers do - include the path to your PEAR installation in PHP's "include_path" variable, so that you can access any of the PEAR classes without needing to type in long, convoluted file paths.

2. The next step is to instantiate an object of the Archive_Tar class.


<?php

// create Archive_Tar() object
// specify filename for output file
$tar = new Archive_Tar("data.tar");

?>

Note that the object constructor requires, as argument, the name of the TAR file to be created. You can include a path here as well if you would like the file to be created in a location other than the current directory.

3. Third, you need to tell the newly-created object which files to include in the archive. This information is provided to the object's create() method as an array of file names.


<?php

// 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!");

?>

Obviously, you should replace the file list in the example above with information that reflects your own system. If Archive_Tar cannot locate any of the files specified in the file list, it will simply skip over it to the next one.

Note that the create() method will replace a previously-existing file with the same name. If you don't want this to happen, you should wrap your call to create() in a file_exists() test.

Once you run this script through your browser, you'll see that a file named "data.tar" appears in the same directory as the script.


$ ls -l data.tar
-rwxrw-rw- 1 nobody nobody 72704 Jul 8 14:31 data.tar

This is the TAR file created by the lines of code above.

If you examine this file with the "tar" command, you'll see that it contains all the files specified in your PHP script.


$ tar -tvf data.tar
-rw-rw-rw- 0/0 2876 2002-04-09 21:04:08 package.dtd
-rw-rw-rw- 0/0 2891 2002-11-18 01:22:20 package.xml
-rw-rw-rw- 0/0 707 2003-02-19 19:18:14 filter.xsl
-rw-rw-rw- 0/0 62790 2002-06-12 17:17:20 includes/php/adodb.php



 
 
>>> More PHP Articles          >>> More By The Disenchanted Developer, (c) Melonfire
 

blog comments powered by Disqus
escort Bursa Bursa escort Antalya eskort
   

PHP ARTICLES

- Hackers Compromise PHP Sites to Launch Attac...
- Red Hat, Zend Form OpenShift PaaS Alliance
- PHP IDE News
- BCD, Zend Extend PHP Partnership
- PHP FAQ Highlight
- PHP Creator Didn't Set Out to Create a Langu...
- PHP Trends Revealed in Zend Study
- PHP: Best Methods for Running Scheduled Jobs
- PHP Array Functions: array_change_key_case
- PHP array_combine Function
- PHP array_chunk Function
- PHP Closures as View Helpers: Lazy-Loading F...
- Using PHP Closures as View Helpers
- PHP File and Operating System Program Execut...
- PHP: Effects of Wrapping Code in Class Const...

Developer Shed Affiliates

 


Dev Shed Tutorial Topics: