(PHP 5 >= 5.2.0, PHP 7, PECL zip >= 1.1.0)
ZipArchive::extractTo — Extract the archive contents
Extract the complete archive or the given files to the specified destination.
The default permissions for extracted files and directories give the widest possible access. This can be restricted by setting the current umask, which can be changed using umask().
destinationLocation where to extract the files.
entriesThe entries to extract. It accepts either a single entry name or an array of names.
   Returns TRUE on success or FALSE on failure.
  
Example #1 Extract all entries
<?php
$zip = new ZipArchive;
if ($zip->open('test.zip') === TRUE) {
    $zip->extractTo('/my/destination/dir/');
    $zip->close();
    echo 'ok';
} else {
    echo 'failed';
}
?>
Example #2 Extract two entries
<?php
$zip = new ZipArchive;
$res = $zip->open('test_im.zip');
if ($res === TRUE) {
    $zip->extractTo('/my/destination/dir/', array('pear_item.gif', 'testfromfile.php'));
    $zip->close();
    echo 'ok';
} else {
    echo 'failed';
}
?>