function extract($src, $dest = false)
 {
     $path_parts = pathinfo($src);
     if (!$dest) {
         $dest = $path_parts['dirname'] . '/';
     }
     $ext = '.' . $path_parts['extension'];
     $name = $path_parts['filename'];
     foreach ($this->WathArchive as $key => $val) {
         if (stripos($ext, $key) !== false) {
             $comp = $val;
         }
     }
     if ($comp == 'zip') {
         $zip = new zip();
         return $zip->extractZip($src, $dest);
     } elseif (strlen($comp) > 1) {
         $tar = new tar();
         if ($comp == 'bz') {
             $bzip2 = new bzip2();
             $src = $bzip2->extractBzip2($src);
         } elseif ($comp == 'gz') {
             $gzip = new gzip();
             $src = $gzip->extractGzip($src);
         }
         if ($tar->is_tar($src) || is_file($src)) {
             return $tar->extractTar($src, $dest);
         } else {
             file_put_contents($dest . $name, $src);
         }
         return $dest;
     }
     return false;
 }