(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL phar >= 2.0.0)
Phar::extractTo — Extrait le contenu d'une archive phar vers un répertoire
$directory
, array|string|null$files
= null
, bool$overwrite
= false
): bool Extrait tous les fichiers d'une archive phar vers le disque. Les fichiers et les dossiers extraits conservent les permissions à l'identique de l'intérieur de l'archive. Les paramètres optionnels permettent un éventuel contrôle sur quel fichier est extrait et si des fichiers déjà existants sur le disque peuvent être écrasés. Le second paramètre files
peut être soit le nom d'un fichier ou d'un répertoire, soit un tableau de noms de fichiers et de répertoires à extraire. Par défaut, cette méthode n'écrasant pas les fichiers existants, le troisième paramètre peut être passé à true
pour activer l'écrasement de fichiers. Cette méthode est identique à ZipArchive::extractTo().
retourne true
en cas de succès, mais il est plus sûr de vérifier si des exceptions sont levées, et de considérer que tout s'est bien passé si aucune n'est levée.
Lève une exception PharException si des erreurs apparaissent pendant l'écriture sur le disque.
Exemple #1 Exemple avec Phar::extractTo()
<?php
try {
$phar = new Phar('monphar.phar');
$phar->extractTo('/chemin/complet'); // extrait tous les fichiers
$phar->extractTo('/autre/chemin', 'fichier.txt'); // extrait seulement fichier.txt
$phar->extractTo('/ce/chemin',
array('fichier1.txt', 'fichier2.txt')); // extrait seulement 2 fichiers
$phar->extractTo('/troisieme/chemin', null, true); // extrait tous les fichiers, en écrasant
} catch (Exception $e) {
// traite les erreurs
}
?>
Note:
Les systèmes de fichiers NTFS Windows ne supportent pas certain caractères dans le noms de fichier, à savoir
<|>*?":
. Les noms de fichiers avec un point trainant ne sont également pas supporté. Contrairement à certains outils d'extraction, cette méthode ne remplace pas ces caractères avec un tiret bas, mais échoue à extraire de tel fichiers.