API15:JArchiveTar/extract
From Joomla! Documentation
Description
Extract a ZIP compressed file to a given path
<! removed transcluded page call, red link never existed >
Syntax
extract($archive, $destination, $options=array())
| Parameter Name | Default Value | Description |
|---|---|---|
| $archive | $archive Path to ZIP archive to extract | |
| $destination | $destination Path to extract archive into | |
| $options | array() | $options Extraction options [unused] |
Returns
boolean True if successful
Defined in
libraries/joomla/filesystem/archive/tar.php
Importing
jimport( 'joomla.filesystem.archive.tar' );
Source Body
function extract($archive, $destination, $options = array ())
{
// Initialize variables
$this->_data = null;
$this->_metadata = null;
if (!$this->_data = JFile::read($archive))
{
$this->set('error.message', 'Unable to read archive');
return JError::raiseWarning(100, $this->get('error.message'));
}
if (!$this->_getTarInfo($this->_data))
{
return JError::raiseWarning(100, $this->get('error.message'));
}
for ($i=0,$n=count($this->_metadata);$i<$n;$i++)
{
$type = strtolower( $this->_metadata[$i]['type'] );
if ($type == 'file' || $type == 'unix file')
{
$buffer = $this->_metadata[$i]['data'];
$path = JPath::clean($destination.DS.$this->_metadata[$i]['name']);
// Make sure the destination folder exists
if (!JFolder::create(dirname($path)))
{
$this->set('error.message', 'Unable to create destination');
return JError::raiseWarning(100, $this->get('error.message'));
}
if (JFile::write($path, $buffer) === false)
{
$this->set('error.message', 'Unable to write entry');
return JError::raiseWarning(100, $this->get('error.message'));
}
}
}
return true;
}
<! removed transcluded page call, red link never existed >
Examples
Code Examples