(PHP 5 >= 5.2.0, PHP 7, PHP 8, PECL zip >= 1.1.0)
ZipArchive::extractTo — Extrait le contenu de l'archive
$pathto, array|string|null $files = null): boolExtrait l'archive complète ou les fichiers fournis vers un chemin spécifié.
Les permissions par défaut pour les fichiers et dossiers extraits donnent le plus large accès possible. Ceci peut être restraint en définissant le umask courant, qui peut être changé en utilisant umask().
pathtoEndroit où l'on doit extraire les fichiers
filesLes entrées à extraire. Ce peut être soit le nom d'une entrée ou un tableau de noms
   Cette fonction retourne true en cas de succès ou false si une erreur survient.
  
Exemple #1 Extrait toutes les entrées
<?php
$zip = new ZipArchive;
if ($zip->open('test.zip') === TRUE) {
    $zip->extractTo('/mon/dossier/destination/');
    $zip->close();
    echo 'ok';
} else {
    echo 'échec';
}
?>
Exemple #2 Extrait deux entrées
<?php
$zip = new ZipArchive;
$res = $zip->open('test_im.zip');
if ($res === TRUE) {
    $zip->extractTo('/mon/dossier/destination/', array('pear_item.gif', 'testfromfile.php'));
    $zip->close();
    echo 'ok';
} else {
    echo 'échec';
}
?>
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.