Note that PHAR only supports extracting the 'ustar' variant of the tar archives.
Some systems (such as older versions of Mac OS X) generate the 'pax' format by default.
See here for more information:
http://php.net/manual/pl/phar.fileformat.tar.php
PharData::extractTo
(PHP >= 5.3.0, PECL phar >= 2.0.0)
PharData::extractTo — Extraer el contenido de un archivo tar/zip a un directorio
Descripción
$pathto
[, string|array $files
[, bool $overwrite = false
]] )Extrae todos los ficheros de un archivo tar/zip al disco. Los ficheros y directorios extraídos conservan los mismos permisos que los almacenados en el archivo. Los parámetros opcionales permiten controlar qué ficheros serán extraídos, y si los ficheros existentes en disco podrán ser sobrescritos. El segundo parámetro files puede ser el nombre de un fichero o directorio a extraer, o un array de nombre de ficheros y directorios a extraer. Por omisión, este método no sobrescribirá los ficheros existentes, aunque el tercer parámetro se puede establecer a true para habilitar la sobrescritura de ficheros. Este método es similar a ZipArchive::extractTo().
Parámetros
-
pathto -
Ruta dentro de un archivo al fichero a borrar.
-
files -
El nombre de un fichero o directorio a extraer, o un array de ficheros/directorios a extraer.
-
overwrite -
Esteblecer a
TRUEpara habilitar la sobrescritura de ficheros existentes
Valores devueltos
Devuelve TRUE en caso de éxito, pero es mejor comprobar si lanza alguna excepción,
y asumir el éxito si no se lanza ninguna.
Errores/Excepciones
Lanza una excepción de tipo PharException si ocurrió algún error al volcar los cambios al disco.
Ejemplos
Ejemplo #1 Un ejemplo de PharData::extractTo()
<?php
try {
$phar = new PharData('miphar.tar');
$phar->extractTo('/ruta/completa'); // extraer todos los ficheros
$phar->extractTo('/otra/ruta', 'fichero.txt'); // extraer solamente fichero.txt
$phar->extractTo('/esta/ruta',
array('fichero1.txt', 'fichero2.txt')); // extraer solamente 2 ficheros
$phar->extractTo('/tercera/ruta', null, true); // extraer todos los ficheros y sobrescribirlos
} catch (Exception $e) {
// manejar errores
}
?>
