本文整理汇总了PHP中ZipArchive::extractTo方法的典型用法代码示例。如果您正苦于以下问题:PHP ZipArchive::extractTo方法的具体用法?PHP ZipArchive::extractTo怎么用?PHP ZipArchive::extractTo使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类ZipArchive
的用法示例。
在下文中一共展示了ZipArchive::extractTo方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: unzip_file
function unzip_file($zip_archive, $archive_file, $zip_dir)
{
if (!is_dir($zip_dir)) {
if (!defined('SUGAR_PHPUNIT_RUNNER')) {
die("Specified directory '{$zip_dir}' for zip file '{$zip_archive}' extraction does not exist.");
}
return false;
}
$zip = new ZipArchive();
$res = $zip->open($zip_archive);
if ($res !== true) {
if (!defined('SUGAR_PHPUNIT_RUNNER')) {
die(sprintf("ZIP Error(%d): %s", $res, $zip->status));
}
return false;
}
if ($archive_file !== null) {
$res = $zip->extractTo($zip_dir, $archive_file);
} else {
$res = $zip->extractTo($zip_dir);
}
if ($res !== true) {
if (!defined('SUGAR_PHPUNIT_RUNNER')) {
die(sprintf("ZIP Error(%d): %s", $res, $zip->status));
}
return false;
}
return true;
}
示例2: unzip_content
function unzip_content()
{
$zip = new ZipArchive();
if (file_exists('application.zip')) {
$res = $zip->open('application.zip');
if ($res === TRUE) {
echo '<p>Unzipped Application <i class="fa fa-check-circle-o"></i></p>';
$zip->extractTo('./');
$zip->close();
unlink('application.zip');
} else {
echo '<p>Could not unzip application.zip <i class="fa fa-times-circle-o"></i></p>';
}
} else {
echo '<p>Application already unzipped <i class="fa fa-check-circle-o"></i></p>';
}
new_line();
if (file_exists('content.zip')) {
$res = $zip->open('content.zip');
if ($res === TRUE) {
echo '<p>Unzipped Content <i class="fa fa-check-circle-o"></i></p>';
$zip->extractTo('./');
$zip->close();
unlink('content.zip');
} else {
echo '<p>Could not unzip content.zip <i class="fa fa-times-circle-o"></i></p>';
}
} else {
echo '<p>Content already unzipped <i class="fa fa-check-circle-o"></i></p>';
}
new_line();
}
示例3: extractTo
/**
* @param $destination
* @throws IfwPsn_Wp_Module_Exception
* @return bool
*/
public function extractTo($destination)
{
if (!$this->_zip->extractTo($destination)) {
throw new IfwPsn_Wp_Module_Exception('Could not extract archive.');
}
return true;
}
示例4: testZipArchive
/**
* Test all methods
*
* @param string $zipClass
* @covers ::<public>
*/
public function testZipArchive($zipClass = 'ZipArchive')
{
// Preparation
$existingFile = __DIR__ . '/../_files/documents/sheet.xls';
$zipFile = __DIR__ . '/../_files/documents/ziptest.zip';
$destination1 = __DIR__ . '/../_files/documents/extract1';
$destination2 = __DIR__ . '/../_files/documents/extract2';
@mkdir($destination1);
@mkdir($destination2);
Settings::setZipClass($zipClass);
$object = new ZipArchive();
$object->open($zipFile, ZipArchive::CREATE);
$object->addFile($existingFile, 'xls/new.xls');
$object->addFromString('content/string.txt', 'Test');
$object->close();
$object->open($zipFile);
// Run tests
$this->assertEquals(0, $object->locateName('xls/new.xls'));
$this->assertFalse($object->locateName('blablabla'));
$this->assertEquals('Test', $object->getFromName('content/string.txt'));
$this->assertEquals('Test', $object->getFromName('/content/string.txt'));
$this->assertFalse($object->getNameIndex(-1));
$this->assertEquals('content/string.txt', $object->getNameIndex(1));
$this->assertFalse($object->extractTo('blablabla'));
$this->assertTrue($object->extractTo($destination1));
$this->assertTrue($object->extractTo($destination2, 'xls/new.xls'));
$this->assertFalse($object->extractTo($destination2, 'blablabla'));
// Cleanup
$this->deleteDir($destination1);
$this->deleteDir($destination2);
@unlink($zipFile);
}
示例5: upload
/**
* Upload component
*
* @requires component package file,
*
* @return bool;
*/
public function upload()
{
$archive = new ZipArchive();
$data_dir = ossn_get_userdata('tmp/components');
if (!is_dir($data_dir)) {
mkdir($data_dir, 0755, true);
}
$zip = $_FILES['com_file'];
$newfile = "{$data_dir}/{$zip['name']}";
if (move_uploaded_file($zip['tmp_name'], $newfile)) {
if ($archive->open($newfile) === TRUE) {
$archive->extractTo($data_dir);
//make community components works on installer #394
$validate = $archive->statIndex(0);
$validate = str_replace('/', '', $validate['name']);
$archive->close();
if (is_dir("{$data_dir}/{$validate}") && is_file("{$data_dir}/{$validate}/ossn_com.php") && is_file("{$data_dir}/{$validate}/ossn_com.xml")) {
$archive->open($newfile);
$archive->extractTo(ossn_route()->com);
$archive->close();
$this->newCom($validate);
OssnFile::DeleteDir($data_dir);
return true;
}
}
}
return false;
}
示例6: extract
/**
* @param string $to - path where the archive should be extracted to
* @return bool
*/
public function extract($to)
{
$r = false;
$ext = SPFs::getExt($this->_filename);
switch ($ext) {
case 'zip':
$zip = new ZipArchive();
if ($zip->open($this->_filename) === true) {
SPException::catchErrors(SPC::WARNING);
try {
$zip->extractTo($to);
$zip->close();
$r = true;
} catch (SPException $x) {
$t = Sobi::FixPath(Sobi::Cfg('fs.temp') . DS . md5(microtime()));
SPFs::mkdir($t, 0777);
$dir = SPFactory::Instance('base.fs.directory', $t);
if ($zip->extractTo($t)) {
$zip->close();
$dir->moveFiles($to);
$r = true;
}
SPFs::delete($dir->getPathname());
}
SPException::catchErrors(0);
}
break;
}
return $r;
}
示例7: extractArchive
private function extractArchive()
{
$this->archive->close();
$this->archive->open($this->archive_path);
$this->archive->extractTo($this->extraction_path);
$this->archive->close();
}
示例8: extract
/**
* 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
*/
public function extract($pathExtracted)
{
if (substr_compare($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;
}
示例9: upload
/**
* Upload component
*
* @requires component package file,
*
* @return bool;
*/
public function upload()
{
$archive = new ZipArchive();
$data_dir = ossn_get_userdata('tmp/components');
if (!is_dir($data_dir)) {
mkdir($data_dir, 0755, true);
}
$zip = $_FILES['com_file'];
$newfile = "{$data_dir}/{$zip['name']}";
if (move_uploaded_file($zip['tmp_name'], $newfile)) {
if ($archive->open($newfile) === TRUE) {
$archive->extractTo($data_dir);
$archive->close();
$validate = pathinfo($zip['name'], PATHINFO_FILENAME);
if (is_file("{$data_dir}/{$validate}/ossn_com.php") && is_file("{$data_dir}/{$validate}/ossn_com.xml")) {
$archive->open($newfile);
$archive->extractTo(ossn_route()->com);
$archive->close();
$this->newCom($validate);
OssnFile::DeleteDir($data_dir);
return true;
}
}
}
return false;
}
示例10: unzip_file
function unzip_file($zip_archive, $archive_file, $zip_dir)
{
if (!is_dir($zip_dir)) {
if (defined('SUGAR_PHPUNIT_RUNNER') || defined('SUGARCRM_INSTALL')) {
$GLOBALS['log']->fatal("Specified directory '{$zip_dir}' for zip file '{$zip_archive}' extraction does not exist.");
return false;
} else {
die("Specified directory '{$zip_dir}' for zip file '{$zip_archive}' extraction does not exist.");
}
}
$zip = new ZipArchive();
$res = $zip->open($zip_archive);
if ($res !== TRUE) {
if (defined('SUGAR_PHPUNIT_RUNNER') || defined('SUGARCRM_INSTALL')) {
$GLOBALS['log']->fatal(sprintf("ZIP Error(%d): Status(%s): Arhive(%s): Directory(%s)", $res, $zip->status, $zip_archive, $zip_dir));
return false;
} else {
die(sprintf("ZIP Error(%d): Status(%s): Arhive(%s): Directory(%s)", $res, $zip->status, $zip_archive, $zip_dir));
}
}
if ($archive_file !== null) {
$res = $zip->extractTo($zip_dir, $archive_file);
} else {
$res = $zip->extractTo($zip_dir);
}
if ($res !== TRUE) {
if (defined('SUGAR_PHPUNIT_RUNNER') || defined('SUGARCRM_INSTALL')) {
$GLOBALS['log']->fatal(sprintf("ZIP Error(%d): Status(%s): Arhive(%s): Directory(%s)", $res, $zip->status, $zip_archive, $zip_dir));
return false;
} else {
die(sprintf("ZIP Error(%d): Status(%s): Arhive(%s): Directory(%s)", $res, $zip->status, $zip_archive, $zip_dir));
}
}
return true;
}
示例11: extract
/**
* Extract an archived and/or compressed file
*
* @param string $to
* @return void
*/
public function extract($to = null)
{
if ($this->archive->open($this->path) === true) {
$path = null !== $to ? realpath($to) : './';
$this->archive->extractTo($path);
$this->archive->close();
}
}
示例12: extract
/**
* {@inheritdoc}
*/
public function extract($path, array $files = array())
{
if ($files) {
$this->zip->extractTo($path, $files);
} else {
$this->zip->extractTo($path);
}
return $this;
}
示例13: _extractByPhpLib
/**
* ZipArchive クラスによる展開
*
* @param $source
* @param $target
* @return bool
*/
protected function _extractByPhpLib($source, $target)
{
if ($this->Zip->open($source) === true && $this->Zip->extractTo($target)) {
$archivePath = $this->Zip->getNameIndex(0);
$archivePathAry = explode(DS, $archivePath);
$this->topArchiveName = $archivePathAry[0];
return true;
} else {
return false;
}
}
示例14: extractFileIntoFolder
/**
* Metodo utilizzato per estrarre i tracciati dati e immagini
* nella cartella import
*/
function extractFileIntoFolder()
{
$zip = new \ZipArchive();
$res = $zip->open(FOLDER_IMPORT_ROOT . FILE_ERP_DATA);
if ($res === TRUE) {
$zip->extractTo(FOLDER_UNZIP);
$zip->close();
}
$res2 = $zip->open(FOLDER_IMPORT_ROOT . FILE_ERP_IMG);
if ($res2 === TRUE) {
$zip->extractTo(FOLDER_UNZIP);
$zip->close();
}
}
示例15: unpackZip
/**
* @param string
* @param string
*/
private function unpackZip($zipPath, $dataPath)
{
if ($this->verbose) {
$this->writeln('Unpacking pages zip file');
}
if (file_exists($dataPath)) {
try {
FileSystem::delete($dataPath);
} catch (\Nette\IOException $e) {
throw new \NetteAddons\InvalidStateException('Pages temp data directory already exists');
}
}
$zip = new \ZipArchive();
if ($err = $zip->open($zipPath) !== TRUE) {
throw new \NetteAddons\InvalidStateException('Pages zip file is corrupted', $err);
}
if (!mkdir($dataPath, 0777, TRUE)) {
throw new \NetteAddons\InvalidStateException('Pages temp data directory could not be created');
}
if (!$zip->extractTo($dataPath)) {
throw new \NetteAddons\InvalidStateException('Pages zip file is corrupted');
}
$zip->close();
unlink($zipPath);
}