PHP Conference Nagoya 2025

Phar::extractTo

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

Phar::extractToExtrait le contenu d'une archive phar vers un répertoire

Description

public Phar::extractTo(string $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().

Liste de paramètres

directory

Chemin d'accès vers lequel extraire les fichiers files

files

Le nom d'un fichier ou d'un répertoire ou un tableau de fichiers/répertoires à extraire, null pour ignorer ce paramètre

overwrite

Le passer à true pour activer l'écrasement des fichiers existants

Valeurs de retour

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.

Erreurs / Exceptions

Lève une exception PharException si des erreurs apparaissent pendant l'écriture sur le disque.

Exemples

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
}
?>

Notes

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.

Voir aussi

add a note

User Contributed Notes 1 note

up
3
msucco at mac dot com
5 years ago
On the command line (*nix) you can use the following command to extract a phar file:

$ mkdir tmp && cd $_
$ phar extract -f ../file.phar
To Top