/** * Method to extract an archived and/or compressed file * * @param string $to * @return void */ public function extract($to = null) { if ($this->compression == 'bz') { $this->path = Compress\Bzip2::decompress($this->path); $this->archive = new \Archive_Tar($this->path); } else { if ($this->compression == 'gz') { $this->path = Compress\Gzip::decompress($this->path); $this->archive = new \Archive_Tar($this->path); } } $this->archive->extract(null !== $to ? $to : './'); }
public function testBzip2WithTarFile() { $tar = false; $includePath = explode(PATH_SEPARATOR, get_include_path()); foreach ($includePath as $path) { if (file_exists($path . DIRECTORY_SEPARATOR . 'Archive' . DIRECTORY_SEPARATOR . 'Tar.php')) { $tar = true; } } if ($tar && function_exists('bzopen')) { $a = new Archive(__DIR__ . '/../tmp/test.tar'); $a->addFiles(__DIR__ . '/../tmp'); $compressed = Bzip2::compress(__DIR__ . '/../tmp/test.tar'); copy($compressed, __DIR__ . '/../tmp/test.tbz2'); copy($compressed, __DIR__ . '/../tmp/test.tbz'); $this->fileExists(__DIR__ . '/../tmp/test.tar'); $this->fileExists(__DIR__ . '/../tmp/test.tar.bz2'); $this->fileExists(__DIR__ . '/../tmp/test.tbz2'); $this->fileExists(__DIR__ . '/../tmp/test.tbz'); if (file_exists(__DIR__ . '/../tmp/test.tar')) { unlink(__DIR__ . '/../tmp/test.tar'); } // Test *.tar.bz2 $decompressed = Bzip2::decompress(__DIR__ . '/../tmp/test.tar.bz2'); $this->fileExists(__DIR__ . '/../tmp/test.tar'); if (file_exists(__DIR__ . '/../tmp/test.tar')) { unlink(__DIR__ . '/../tmp/test.tar'); } if (file_exists(__DIR__ . '/../tmp/test.tar.bz2')) { unlink(__DIR__ . '/../tmp/test.tar.bz2'); } // Test *.tbz2 $decompressed = Bzip2::decompress(__DIR__ . '/../tmp/test.tbz2'); $this->fileExists(__DIR__ . '/../tmp/test.tar'); if (file_exists(__DIR__ . '/../tmp/test.tar')) { unlink(__DIR__ . '/../tmp/test.tar'); } if (file_exists(__DIR__ . '/../tmp/test.tbz2')) { unlink(__DIR__ . '/../tmp/test.tbz2'); } // Test *.tbz $decompressed = Bzip2::decompress(__DIR__ . '/../tmp/test.tbz'); $this->fileExists(__DIR__ . '/../tmp/test.tar'); if (file_exists(__DIR__ . '/../tmp/test.tar')) { unlink(__DIR__ . '/../tmp/test.tar'); } if (file_exists(__DIR__ . '/../tmp/test.tbz')) { unlink(__DIR__ . '/../tmp/test.tbz'); } } }