(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL phar >= 2.0.0)
Phar::extractTo — Extrae el contenido de un archivo phar hacia un directorio
$directory, array|string|null $files = null, bool $overwrite = false): bool
Extrae todos los ficheros de un archivo phar hacia el disco. Los ficheros
y los directorios extraídos conservan los permisos de manera idéntica
a los del interior del archivo. Los parámetros opcionales permiten
controlar qué ficheros se extraen 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, o un array de nombres de ficheros y directorios
a extraer. Por omisión, este método no sobrescribe los ficheros existentes, el tercer
parámetro puede ser pasado a true para activar la sobrescritura de ficheros.
Este método es similar a ZipArchive::extractTo().
La extracción sigue los enlaces simbólicos existentes en el
directory de destino. Si hay un enlace simbólico presente en el
directory de destino:
overwrite sea true.
devuelve true en caso de éxito, pero es más seguro verificar
si se lanzan excepciones, y considerar que todo ha ido bien
si ninguna es lanzada.
Lanza una excepción PharException si ocurren errores durante la escritura en el disco.
Ejemplo #1 Ejemplo con Phar::extractTo()
<?php
try {
$phar = new Phar('myphar.phar');
$phar->extractTo('/full/path'); // extrae todos los ficheros
$phar->extractTo('/another/path', 'file.txt'); // extrae solo file.txt
$phar->extractTo('/this/path',
array('file1.txt', 'file2.txt')); // extrae solo 2 ficheros
$phar->extractTo('/third/path', null, true); // extrae todos los ficheros, sobrescribiendo
} catch (Exception $e) {
// maneja los errores
}
?>Nota:
Los sistemas de archivos NTFS de Windows no soportan ciertos caracteres en los nombres de fichero, como
<|>*?":. Los nombres de fichero con un punto final no son soportados. A diferencia de algunas herramientas de extracción, este método no reemplaza estos caracteres con un guión bajo, sino que falla al extraer tales ficheros.