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