Joomla Platform  13.1
Documentation des API du framework Joomla Platform
 Tout Classes Espaces de nommage Fichiers Fonctions Variables Pages
Référence de la classe JArchiveTar
+ Graphe d'héritage de JArchiveTar:
+ Graphe de collaboration de JArchiveTar:

Liste de tous les membres

Fonctions membres publiques

 extract ($archive, $destination, array $options=array())

Fonctions membres publiques statiques

static isSupported ()

Fonctions membres protégées

 _getTarInfo (&$data)

Attributs privés

 $_types
 $_data = null
 $_metadata = null

Description détaillée

Définition à la ligne 29 du fichier tar.php.


Documentation des fonctions membres

JArchiveTar::_getTarInfo ( $data)
protected

Get the list of files/data from a Tar archive buffer.

Paramètres:
string&$dataThe Tar archive buffer.
Renvoie:
array Archive metadata array
 KEY: Position in the array
 VALUES: 'attr'  –  File attributes
 'data'  –  Raw file contents
 'date'  –  File modification time
 'name'  –  Filename
 'size'  –  Original file size
 'type'  –  File type
 
Depuis:
11.1

Définition à la ligne 164 du fichier tar.php.

Références JError\raiseWarning().

{
$position = 0;
$return_array = array();
while ($position < strlen($data))
{
$info = @unpack(
"a100filename/a8mode/a8uid/a8gid/a12size/a12mtime/a8checksum/Ctypeflag/a100link/a6magic/a2version/a32uname/a32gname/a8devmajor/a8devminor",
substr($data, $position)
);
if (!$info)
{
if (class_exists('JError'))
{
return JError::raiseWarning(100, 'Unable to decompress data');
}
else
{
throw new RuntimeException('Unable to decompress data');
}
}
$position += 512;
$contents = substr($data, $position, octdec($info['size']));
$position += ceil(octdec($info['size']) / 512) * 512;
if ($info['filename'])
{
$file = array(
'attr' => null,
'data' => null,
'date' => octdec($info['mtime']),
'name' => trim($info['filename']),
'size' => octdec($info['size']),
'type' => isset($this->_types[$info['typeflag']]) ? $this->_types[$info['typeflag']] : null);
if (($info['typeflag'] == 0) || ($info['typeflag'] == 0x30) || ($info['typeflag'] == 0x35))
{
/* File or folder. */
$file['data'] = $contents;
$mode = hexdec(substr($info['mode'], 4, 3));
$file['attr'] = (($info['typeflag'] == 0x35) ? 'd' : '-') . (($mode & 0x400) ? 'r' : '-') . (($mode & 0x200) ? 'w' : '-') .
(($mode & 0x100) ? 'x' : '-') . (($mode & 0x040) ? 'r' : '-') . (($mode & 0x020) ? 'w' : '-') . (($mode & 0x010) ? 'x' : '-') .
(($mode & 0x004) ? 'r' : '-') . (($mode & 0x002) ? 'w' : '-') . (($mode & 0x001) ? 'x' : '-');
}
else
{
/* Some other type. */
}
$return_array[] = $file;
}
}
$this->_metadata = $return_array;
return true;
}

+ Voici le graphe d'appel pour cette fonction :

JArchiveTar::extract (   $archive,
  $destination,
array  $options = array() 
)

Extract a ZIP compressed file to a given path

Paramètres:
string$archivePath to ZIP archive to extract
string$destinationPath to extract archive into
array$optionsExtraction options [unused]
Renvoie:
boolean True if successful
Exceptions:
RuntimeException
Depuis:
11.1

Implémente JArchiveExtractable.

Définition à la ligne 76 du fichier tar.php.

Références JPath\clean(), JFolder\create(), JError\raiseWarning(), et JFile\write().

{
$this->_data = null;
$this->_metadata = null;
$this->_data = file_get_contents($archive);
if (!$this->_data)
{
if (class_exists('JError'))
{
return JError::raiseWarning(100, 'Unable to read archive');
}
else
{
throw new RuntimeException('Unable to read archive');
}
}
$this->_getTarInfo($this->_data);
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 . '/' . $this->_metadata[$i]['name']);
// Make sure the destination folder exists
if (!JFolder::create(dirname($path)))
{
if (class_exists('JError'))
{
return JError::raiseWarning(100, 'Unable to create destination');
}
else
{
throw new RuntimeException('Unable to create destination');
}
}
if (JFile::write($path, $buffer) === false)
{
if (class_exists('JError'))
{
return JError::raiseWarning(100, 'Unable to write entry');
}
else
{
throw new RuntimeException('Unable to write entry');
}
}
}
}
return true;
}

+ Voici le graphe d'appel pour cette fonction :

static JArchiveTar::isSupported ( )
static

Tests whether this adapter can unpack files on this computer.

Renvoie:
boolean True if supported
Depuis:
11.3

Implémente JArchiveExtractable.

Définition à la ligne 141 du fichier tar.php.

{
return true;
}

Documentation des données membres

JArchiveTar::$_data = null
private

Définition à la ligne 54 du fichier tar.php.

JArchiveTar::$_metadata = null
private

Définition à la ligne 62 du fichier tar.php.

JArchiveTar::$_types
private
Valeur initiale :
array(
0x0 => 'Unix file',
0x30 => 'File',
0x31 => 'Link',
0x32 => 'Symbolic link',
0x33 => 'Character special file',
0x34 => 'Block special file',
0x35 => 'Directory',
0x36 => 'FIFO special file',
0x37 => 'Contiguous file')

Définition à la ligne 37 du fichier tar.php.


La documentation de cette classe a été générée à partir du fichier suivant :