PharData::extractTo

(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL phar >= 2.0.0)

PharData::extractToExtrae el contenido de un archivo tar/zip hacia un directorio

Descripción

public PharData::extractTo(string $directory, array|string|null $files = null, bool $overwrite = false): bool

Extrae todos los ficheros de un archivo tar/zip hacia el disco. Los ficheros y directorios extraídos conservan los permisos tal como en el archivo. Los parámetros opcionales permiten un eventual control sobre qué ficheros serán extraídos y si los ficheros ya existentes en el disco pueden ser sobrescritos. El segundo parámetro files puede ser el nombre de un fichero o directorio a extraer, o un array de nombres de ficheros y directorios a extraer. Por omisión, este método no sobrescribirá ningún fichero ya existente, a menos que el tercer parámetro sea true. Este método es idéntico a ZipArchive::extractTo().

Parámetros

directory

Ruta donde los ficheros serán extraídos.

files

El nombre de un fichero o directorio a extraer, o un array de ficheros/directorios a extraer

overwrite

Pasarlo a true para activar la sobrescritura de ficheros ya existentes

Valores devueltos

Devuelve true en caso de éxito, pero es preferible verificar las excepciones lanzadas y considerar el éxito si ninguna se produce.

Errores/Excepciones

Lanza una excepción PharException si se encuentran errores al escribir los cambios en el disco.

Ejemplos

Ejemplo #1 Ejemplo con PharData::extractTo()

<?php
try {
$phar = new PharData('monphar.tar');
$phar->extractTo('/ruta/completa'); // extrae todos los ficheros
$phar->extractTo('/otra/ruta', 'fichero.txt'); // extrae solo fichero.txt
$phar->extractTo('/esta/ruta',
array(
'fichero1.txt', 'fichero2.txt')); // extrae solo 2 ficheros
$phar->extractTo('/tercera/ruta', null, true); // extrae todos los ficheros, sobrescribiendo
} catch (Exception $e) {
// se manejan los errores
}
?>

Notas

Nota:

Los sistemas de archivos NTFS de Windows no admiten algunos caracteres en nombres de archivos, a saber: <|>*?":. Tampoco se admiten nombres de archivo con un punto final. A diferencia de algunas herramientas de extracción, este método no reemplaza estoscaracteres con un guion bajo, sino que falla al intentar extraer tales archivos.

Ver también