code: public function extract($pathExtracted)
      {
          if (substr($pathExtracted, -1) !== '/') {
              $pathExtracted .= '/';
          }
  
          $fileselector = array();
          $list  = array();
          $count = $this->ziparchive->numFiles;
  
          if ($count === 0) {
              return 0;
          }
  
          for ($i = 0; $i < $count; $i++) {
              $entry = $this->ziparchive->statIndex($i);
  
              $filename = str_replace('\\', '/', $entry['name']);
              $parts    = explode('/', $filename);
  
              if (!strncmp($filename, '/', 1) ||
                  array_search('..', $parts) !== false ||
                  strpos($filename, ':') !== false
              ) {
                  return 0;
              }
  
              $fileselector[] = $entry['name'];
              $list[] = array(
                  'filename'        => $pathExtracted . $entry['name'],
                  'stored_filename' => $entry['name'],
                  'size'            => $entry['size'],
                  'compressed_size' => $entry['comp_size'],
                  'mtime'           => $entry['mtime'],
                  'index'           => $i,
                  'crc'             => $entry['crc'],
              );
          }
  
          $res = $this->ziparchive->extractTo($pathExtracted, $fileselector);
          if ($res === false) {
              return 0;
          }
  
          return $list;
      }
docs: Extract files from archive to target directory
  
  @param string $pathExtracted Absolute path of target directory
  @return mixed  Array of filenames if successful; or 0 if an error occurred