本文整理汇总了PHP中PclZip类的典型用法代码示例。如果您正苦于以下问题:PHP PclZip类的具体用法?PHP PclZip怎么用?PHP PclZip使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了PclZip类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: unzip
/**
* Unzip a file into the specified directory. Throws a RuntimeException
* if the extraction failed.
*/
public static function unzip($file, $to = 'cache/zip')
{
@ini_set('memory_limit', '256M');
if (!is_dir($to)) {
mkdir($to);
chmod($to, 0777);
}
if (class_exists('ZipArchive')) {
// use ZipArchive
$zip = new ZipArchive();
$res = $zip->open($file);
if ($res === true) {
$zip->extractTo($to);
$zip->close();
} else {
throw new RuntimeException('Could not open zip file [ZipArchive].');
}
} else {
// use PclZip
$zip = new PclZip($file);
if ($zip->extract(PCLZIP_OPT_PATH, $to) === 0) {
throw new RuntimeException('Could not extract zip file [PclZip].');
}
}
return true;
}
示例2: wpd_download
function wpd_download()
{
if (!class_exists('PclZip')) {
include ABSPATH . 'wp-admin/includes/class-pclzip.php';
}
$what = $_GET['wpd'];
$object = $_GET['object'];
switch ($what) {
case 'plugin':
if (strpos($object, '/')) {
$object = dirname($object);
}
$root = WP_PLUGIN_DIR;
break;
case 'theme':
$root = get_theme_root($object);
break;
}
$path = $root . '/' . $object;
$fileName = $object . '.zip';
$archive = new PclZip($fileName);
$archive->add($path, PCLZIP_OPT_REMOVE_PATH, $root);
header('Content-type: application/zip');
header('Content-Disposition: attachment; filename="' . $fileName . '"');
readfile($fileName);
// remove tmp zip file
unlink($fileName);
exit;
}
示例3: extractTextContent
public function extractTextContent()
{
$config = KTConfig::getSingleton();
$temp_dir = $config->get('urls/tmpDirectory');
$docid = $this->document->getId();
$time = 'ktindexer_openoffice_' . time() . '-' . $docid;
$this->openxml_dir = $temp_dir . '/' . $time;
$this->sourcefile = str_replace('\\', '/', $this->sourcefile);
$this->openxml_dir = str_replace('\\', '/', $this->openxml_dir);
$archive = new PclZip($this->sourcefile);
if ($archive->extract(PCLZIP_OPT_PATH, $this->openxml_dir) == 0) {
$this->output = _kt('Failed to extract content');
return false;
}
/* *** Original code using the unzip binary ***
$cmd = '"' . $this->unzip . '"' . ' ' . str_replace(
array('{source}','{part}', '{target_dir}'),
array($this->sourcefile, 'content.xml',$this->openxml_dir), $this->unzip_params);
$cmd = str_replace('\\','/', $cmd);
if (!$this->exec($cmd))
{
$this->output = _kt('Failed to execute command: ') . $cmd;
return false;
}
*** End unzip code *** */
$filename = $this->openxml_dir . '/content.xml';
if (!file_exists($filename)) {
$this->output = _kt('Failed to find file: ') . $filename;
return false;
}
$result = file_put_contents($this->targetfile, $this->filter(file_get_contents($filename)));
return $result !== false;
}
示例4: guardarArchivo
function guardarArchivo()
{
global $db, $t;
// Copia el archivo del usuario al directorio ../files
$tipoArchivo = $_FILES['userfile']['type'];
//if( $tipoArchivo=="application/zip" ){
if (is_uploaded_file($_FILES['userfile']['tmp_name'])) {
copy($_FILES['userfile']['tmp_name'], "../facturas/facturas.zip");
$msg[] = "<font color=green>El archivo fue cargado correctamente.</font>";
// -------------------------------------------
// Descomprimir los zip
require_once '../include/pclzip.lib.php';
$archive = new PclZip('../facturas/facturas.zip');
//Ejecutamos la funcion extract
//if ( $archive->extract(PCLZIP_OPT_PATH, ' ../files/facturas/',PCLZIP_OPT_REMOVE_PATH, '../files/facturas/') == 0) {
if ($archive->extract(PCLZIP_OPT_PATH, '../facturas/', PCLZIP_OPT_REMOVE_PATH, '../facturas/') == 0) {
die("Error : " . $archive->errorInfo(true));
}
// -------------------------------------------
// Eliminar zip, ya no es necesario.
unlink("../facturas/facturas.zip");
} else {
$msg[] = "<font color=red>ERROR : Possible file upload attack. Filename: " . $_FILES['userfile']['name'];
}
//}
//else{
// $archivo = $_FILES['userfile']['name'];
// $msg[]= "<font color=red>ERROR : El archivo (<i>$archivo</i>) es incorrecto, debe cargar un formato ZIP, y dentro de él todas las facturas.";
//}
return $msg;
}
示例5: com_install
function com_install()
{
$database =& JFactory::getDBO();
$path = JPATH_SITE;
@ini_set('max_execution_time', '180');
if (!defined('DS')) {
define('DS', DIRECTORY_SEPARATOR);
}
if (file_exists($path . DS . "administrator" . DS . "includes" . DS . "pcl" . DS . "pclzip.lib.php")) {
require_once $path . DS . "administrator" . DS . "includes" . DS . "pcl" . DS . "pclzip.lib.php";
}
$archivename = $path . DS . "administrator" . DS . "components" . DS . "com_sobi2" . DS . "includes" . DS . "install" . DS . "crystalsvg.zip";
$zipfile = new PclZip($archivename);
$zipfile->extract(PCLZIP_OPT_PATH, $path . DS . "images" . DS . "stories" . DS);
$archivename = $path . DS . "administrator" . DS . "components" . DS . "com_sobi2" . DS . "includes" . DS . "install" . DS . "langs.zip";
$zipfile = new PclZip($archivename);
$zipfile->extract(PCLZIP_OPT_PATH, $path . DS . "administrator" . DS . "components" . DS . "com_sobi2" . DS . "languages" . DS);
@unlink($path . DS . "images" . DS . "stories" . DS . "folder_add_f2.png");
@unlink($path . DS . "images" . DS . "stories" . DS . "properties_f2.png");
@chdir($path . DS . "images" . DS);
@mkdir("com_sobi2", 0777);
@chdir($path . DS . images . DS . "com_sobi2" . DS);
@mkdir("clients", 0777);
$m = JFactory::getApplication('site');
$m->redirect('index2.php?option=com_sobi2&sinstall=screen', 'A instalação do SOBI2 não está concluída. Por favor terminar a primeira instalação.');
}
示例6: extract_files
function extract_files($archive, $dir, $type)
{
if ($type != "zip") {
switch ($type) {
case "targz":
case "tgz":
$cmd = which("tar") . " xfz " . escapeshellarg($archive) . " -C " . escapeshellarg($dir);
break;
case "tarbz2":
$cmd = which("tar") . " xfj " . escapeshellarg($archive) . " -C " . escapeshellarg($dir);
break;
case "tar":
$cmd = which("tar") . " xf " . escapeshellarg($archive) . " -C " . escapeshellarg($dir);
break;
case "gz":
$cmd = which("gzip") . " -dq " . escapeshellarg($archive);
break;
case "bz2":
$cmd = which("bzip2") . " -dq " . escapeshellarg($archive);
break;
default:
exit;
}
exec($cmd . " 2>&1", $res);
return $res;
}
if ($type == "zip") {
require_once "../../lib/pclzip/pclzip.lib.php";
$ar = new PclZip($archive);
return $ar->extract(PCLZIP_OPT_PATH, $dir);
}
}
示例7: export
function export()
{
header("Content-type: text/html; charset=utf-8");
ob_end_clean();
//在循环输出前,要关闭输出缓冲区
echo str_pad('', 1024);
//浏览器在接受输出一定长度内容之前不会显示缓冲输出
echo '<h1>开始导出!</h1><hr/><h3>删除初始文件</h3><hr/>';
flush();
del_dir($this->path_to);
echo '删除完成!<br/><h3>删除成功,开始编译less</h3><hr/>';
flush();
//$this->_less();
echo '编译成功!<br/><h3>开始复制文件</h3><hr/>';
flush();
$this->_fileInit();
echo '复制成功!<br/><h3>删除开发相关文件</h3><hr/>';
flush();
$this->_remove();
echo '删除成功!<br/><h3>开始替换模板种less相关内容</h3><hr/>';
flush();
$this->_fileReplace();
echo '替换成功!<br/><h3>打包程序</h3><hr/>';
flush();
load_class('pclzip');
ini_set('memory_limit', '2028M');
//2G;
$archive = new PclZip($this->zip_to);
$v_list = $archive->create($this->path_to, PCLZIP_OPT_REMOVE_PATH, $this->path_to);
echo '打包成功!<br/><h3>初始化配置文件</h3><hr/>';
flush();
$this->_initUser();
echo '更新成功!<br/><h1>导出处理完成!^_^</h1>';
flush();
}
示例8: restore
public function restore($filename)
{
if (!file_exists($filename)) {
$this->pushError(sprintf(langBup::_('Filesystem backup %s does not exists'), basename($filename)));
return false;
}
if (!class_exists('PclZip', false)) {
/** @var backupBup $backup */
$backup = $this->getModule();
$backup->loadLibrary('pcl');
}
$pcl = new PclZip($filename);
if ($files = $pcl->extract(PCLZIP_OPT_PATH, ABSPATH, PCLZIP_OPT_REPLACE_NEWER) === 0) {
$this->pushError(langBup::_('An error has occurred while unpacking the archive'));
return false;
}
unset($pcl);
// Unpack stacks
$stacks = glob(realpath(ABSPATH) . '/BUP*');
if (empty($stacks)) {
return true;
}
foreach ($stacks as $stack) {
if (file_exists($stack)) {
$pcl = new PclZip($stack);
$pcl->extract(PCLZIP_OPT_PATH, ABSPATH, PCLZIP_OPT_REPLACE_NEWER);
unlink($stack);
unset($pcl);
}
}
return true;
}
示例9: saveUploadedFile
protected function saveUploadedFile() {
$file = new Gpf_Db_File();
$file->set('filename', $this->name);
$file->set('filesize', $this->size);
$file->set('filetype', $this->type);
$file->save();
$dir = new Gpf_Io_File($this->getZipFolderUrl().$file->getFileId().'/');
if ($dir->isExists()) {
$dir->delete();
}
$dir->mkdir();
$tmpZip = new Gpf_Io_File($this->getZipFolderUrl().$file->getFileId().'/'.$file->getFileId().".zip");
$dir->copy(new Gpf_Io_File($this->tmpName),$tmpZip);
$archive = new PclZip($this->getZipFolderUrl().$file->getFileId().'/'.$file->getFileId().".zip");
$err = $archive->extract($this->getZipFolderUrl().$file->getFileId().'/');
if ($err <= 0) {
throw new Gpf_Exception("code: ".$err);
}
$tmpZip->delete();
return $file;
}
示例10: _extract
function _extract($package, $target)
{
// First extract files
jimport('joomla.filesystem.file');
jimport('joomla.filesystem.folder');
jimport('joomla.filesystem.archive');
jimport('joomla.filesystem.path');
$adapter =& JArchive::getAdapter('zip');
$result = $adapter->extract($package, $target);
if (!is_dir($target)) {
require_once PATH_ROOT . 'administrator' . DS . 'includes' . DS . 'pcl' . DS . 'pclzip.lib.php';
require_once PATH_ROOT . 'administrator' . DS . 'includes' . DS . 'pcl' . DS . 'pclerror.lib.php';
$extract = new PclZip($package);
if (substr(PHP_OS, 0, 3) == 'WIN') {
if (!defined('OS_WINDOWS')) {
define('OS_WINDOWS', 1);
}
} else {
if (!defined('OS_WINDOWS')) {
define('OS_WINDOWS', 0);
}
}
$result = $extract->extract(PCLZIP_OPT_PATH, $target);
}
return $result;
}
示例11: restore_backup_file
public function restore_backup_file()
{
$data = $this->input->stream();
if (isset($data['filename']) && !empty($data['filename'])) {
$back_file_path = './backup/' . $data['filename'];
if (file_exists($back_file_path)) {
$archive = new PclZip($back_file_path);
$row = $archive->extract(PCLZIP_OPT_PATH, "./backup/zycms");
$row = array_shift($row);
$extract_file_path = './' . $row['filename'];
if (($sql_content = file_get_contents($filename = $extract_file_path)) !== false) {
$sql = explode("\n\n", $sql_content);
foreach ($sql as $key => $s) {
if (trim($s)) {
$result = $this->db->query($s);
}
}
unlink($extract_file_path);
rmdir('./backup/zycms');
die(json_encode(array('code' => 200, 'message' => '还原成功')));
} else {
unlink($extract_file_path);
rmdir('./backup/zycms');
die(json_encode(array('code' => 403, 'message' => '还原失败')));
}
}
}
}
示例12: remoteinstall
public function remoteinstall()
{
//安全验证 $this->checksafeauth();
$url = $this->_get('url');
$ext = strtolower(strrchr($url, '.'));
$filepath = ltrim(strrchr($url, '/'), '/');
if ($ext != '.zip') {
//兼容旧版本
$url = xbase64_decode($url);
$ext = strtolower(strrchr($url, '.'));
$filepath = ltrim(strrchr($url, '/'), '/');
if ($ext != '.zip') {
$this->error('远程文件格式必须为.zip');
}
}
$content = fopen_url($url);
if (empty($content)) {
$this->error('远程获取文件失败!');
}
$filename = substr($filepath, 0, -4);
File::write_file($filepath, $content);
import('ORG.PclZip');
$zip = new PclZip($filepath);
$zip->extract(PCLZIP_OPT_PATH, './');
@unlink($filepath);
//删除安装文件
$this->success('操作成功!', U('App/index'));
}
示例13: compress
/**
* Creates a compressed cache file for the chapter
*
* @author Woxxy
* @return url to compressed file
*/
function compress($chapter)
{
$chapter->get_comic();
$chapter->get_pages();
$files = array();
$this->where('chapter_id', $chapter->id)->get();
if ($this->result_count() == 0 || !file_exists("content/comics/" . $chapter->comic->directory() . "/" . $chapter->directory() . "/" . $this->filename)) {
$this->remove_old();
$CI =& get_instance();
require_once FCPATH . 'assets/pclzip/pclzip.lib.php';
$filename = $this->filename_compressed($chapter);
$archive = new PclZip("content/comics/" . $chapter->comic->directory() . "/" . $chapter->directory() . "/" . $filename . '.zip');
$filearray = array();
foreach ($chapter->pages as $page) {
$filearray[] = "content/comics/" . $chapter->comic->directory() . "/" . $chapter->directory() . "/" . $page["filename"];
}
$v_list = $archive->create(implode(',', $filearray), PCLZIP_OPT_REMOVE_ALL_PATH, PCLZIP_OPT_ADD_PATH, $filename, PCLZIP_OPT_NO_COMPRESSION);
$this->chapter_id = $chapter->id;
$this->filename = $filename . '.zip';
$this->size = filesize("content/comics/" . $chapter->comic->directory() . "/" . $chapter->directory() . "/" . $filename . '.zip');
$this->lastdownload = date('Y-m-d H:i:s', time());
$this->save();
} else {
$this->lastdownload = date('Y-m-d H:i:s', time());
$this->save();
}
return array("url" => site_url() . "content/comics/" . $chapter->comic->directory() . "/" . $chapter->directory() . "/" . urlencode($this->filename), "server_path" => FCPATH . "content/comics/" . $chapter->comic->directory() . "/" . $chapter->directory() . "/" . $this->filename);
}
示例14: unzip
function unzip($fn, $to, $suffix = false)
{
@set_time_limit(0);
// Unzip uses a lot of memory
@ini_set('memory_limit', '256M');
require_once iPATH . 'include/pclzip.class.php';
$files = array();
$zip = new PclZip($fn);
// Is the archive valid?
if (false == ($archive_files = $zip->extract(PCLZIP_OPT_EXTRACT_AS_STRING))) {
exit("ZIP包错误");
}
if (0 == count($archive_files)) {
exit("空的ZIP文件");
}
$path = self::path($to);
self::mkdir($path);
foreach ($archive_files as $file) {
$files[] = array('filename' => $file['filename'], 'isdir' => $file['folder']);
$folder = $file['folder'] ? $file['filename'] : dirname($file['filename']);
self::mkdir($path . '/' . $folder);
if (empty($file['folder'])) {
$fp = $path . '/' . $file['filename'];
$suffix && ($fp = $fp . '.' . $suffix);
self::write($fp, $file['content']);
}
}
return $files;
}
示例15: packageUnzip
function packageUnzip($file, $target)
{
jimport('joomla.filesystem.file');
jimport('joomla.filesystem.folder');
jimport('joomla.filesystem.archive');
jimport('joomla.filesystem.path');
$extract1 =& JArchive::getAdapter('zip');
$result = @$extract1->extract($file, $target);
if ($result != true) {
require_once PATH_ROOT . DS . 'administrator' . DS . 'includes' . DS . 'pcl' . DS . 'pclzip.lib.php';
require_once PATH_ROOT . DS . 'administrator' . DS . 'includes' . DS . 'pcl' . DS . 'pclerror.lib.php';
if (substr(PHP_OS, 0, 3) == 'WIN') {
if (!defined('OS_WINDOWS')) {
define('OS_WINDOWS', 1);
}
} else {
if (!defined('OS_WINDOWS')) {
define('OS_WINDOWS', 0);
}
}
$extract2 = new PclZip($file);
$result = @$extract2->extract(PCLZIP_OPT_PATH, $target);
}
unset($extract1, $extract2);
return $result;
}