<?php $fname = dirname(__FILE__) . '/' . basename(__FILE__, '.php') . '.zip'; echo "=================== new PharData() ==================\n"; $phar = new PharData($fname); $phar['a'] = 'a'; $phar['b'] = 'b'; $phar['c'] = 'c'; var_dump($phar->isFileFormat(Phar::PHAR)); var_dump($phar->isFileFormat(Phar::TAR)); var_dump($phar->isFileFormat(Phar::ZIP)); var_dump($phar->getStub()); var_dump($phar->getAlias()); echo "================= convertToTar() =====================\n"; $phar = $phar->convertToData(Phar::TAR); var_dump($phar->isFileFormat(Phar::PHAR)); var_dump($phar->isFileFormat(Phar::TAR)); var_dump($phar->isFileFormat(Phar::ZIP)); var_dump($phar->getStub()); var_dump($phar->getAlias()); echo "================= convertToZip() =====================\n"; $phar = $phar->convertToData(Phar::ZIP, Phar::NONE, '.1.zip'); var_dump($phar->isFileFormat(Phar::PHAR)); var_dump($phar->isFileFormat(Phar::TAR)); var_dump($phar->isFileFormat(Phar::ZIP)); var_dump($phar->getStub()); var_dump($phar->getAlias()); echo "================= convertToPhar() ====================\n"; try { $phar = $phar->convertToExecutable(Phar::PHAR); var_dump($phar->isFileFormat(Phar::PHAR));
function archiveExtract($srcFile, $destDir, $files = null, $overwrite = true) { $result = array(); try { $archive = new PharData($srcFile); if ($archive->isFileFormat(Phar::GZ)) { $archive->decompress('tar'); $srcFile = pathinfo($srcFile, PATHINFO_DIRNAME) . '/' . pathinfo($srcFile, PATHINFO_FILENAME) . '.tar'; unset($archive); $archive = new PharData($srcFile); $archive->extractTo($destDir, $files, $overwrite); } else { $result[] = _('Unsupported archive format'); } } catch (Exception $err) { $result[] = $err; } //remove temporary uncompressed tar archive if (pathinfo($srcFile, PATHINFO_EXTENSION) == 'tar' && is_file($srcFile)) { unlink($srcFile); } return $result; }