當前位置: 首頁>>代碼示例>>PHP>>正文


PHP Zip::decompress方法代碼示例

本文整理匯總了PHP中Zip::decompress方法的典型用法代碼示例。如果您正苦於以下問題:PHP Zip::decompress方法的具體用法?PHP Zip::decompress怎麽用?PHP Zip::decompress使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在Zip的用法示例。


在下文中一共展示了Zip::decompress方法的1個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的PHP代碼示例。

示例1: init

 /**
  * 在線升級
  */
 public function init()
 {
     // 開始升級
     $do = I('get.do');
     $cover = I('cover', 0);
     if (empty($do)) {
         $this->message(L('upgradeing'), url('init', array('do' => 1, 'cover' => $cover)));
     }
     // 獲取補丁列表
     $pathlist = $this->pathlist();
     if (empty($pathlist)) {
         $this->message(L('upgrade_success'), url('checkfile'));
     }
     // 創建緩存文件夾
     if (!file_exists(CACHE_PATH . 'upgrade')) {
         @mkdir(CACHE_PATH . 'upgrade');
     }
     foreach ($pathlist as $k => $v) {
         $release = str_replace('patch_R', '', basename($v, ".zip"));
         // 遠程壓縮包地址
         $upgradezip_url = $this->upgrade_path_base . $v;
         // 保存到本地地址
         $upgradezip_path = CACHE_PATH . 'upgrade' . DIRECTORY_SEPARATOR . $v;
         // 解壓路徑
         $upgradezip_source_path = CACHE_PATH . 'upgrade' . DIRECTORY_SEPARATOR . basename($v, ".zip");
         // 下載壓縮包
         @file_put_contents($upgradezip_path, Http::doGet($upgradezip_url));
         // 解壓縮
         $zip = new Zip();
         if ($zip->decompress($upgradezip_path, $upgradezip_source_path) == 0) {
             die("Error : unpack the failure.");
         }
         // 拷貝utf8/upload文件夾到根目錄
         $copy_from = $upgradezip_source_path . DIRECTORY_SEPARATOR . $this->patch_charset . DIRECTORY_SEPARATOR . 'upload' . DIRECTORY_SEPARATOR;
         $copy_to = ROOT_PATH;
         $this->copyfailnum = 0;
         $this->copydir($copy_from, $copy_to, $cover);
         // 檢查文件操作權限,是否複製成功
         if ($this->copyfailnum > 0) {
             // 如果失敗,終止操作
             $this->message(L('please_check_filepri'), url('index'));
         }
         // 執行sql
         // sql目錄地址
         $sql_path = CACHE_PATH . 'upgrade' . DIRECTORY_SEPARATOR . basename($v, ".zip") . DIRECTORY_SEPARATOR . $this->patch_charset . DIRECTORY_SEPARATOR . 'upgrade' . DIRECTORY_SEPARATOR;
         $file_list = glob($sql_path . '*');
         if (!empty($file_list)) {
             foreach ($file_list as $fk => $fv) {
                 $file_path = strtolower($fv);
                 if (in_array(substr($file_path, -3, 3), array('php', 'sql')) && substr($file_path, -10, 10) != 'config.php') {
                     if (substr($file_path, -3, 3) == 'sql') {
                         // 更新sql文件
                         $sqlData = Install::mysql($file_path, 'ecs_', C('DB_PREFIX'));
                         // 執行sql文件
                         $model = new EcModel();
                         if (is_array($sqlData)) {
                             foreach ($sqlData as $sql) {
                                 @$model->db->query($sql);
                             }
                         }
                     } elseif (strtolower(substr($file_list[$fk], -3, 3)) == 'php' && file_exists($file_path)) {
                         include $file_path;
                     }
                 }
             }
         }
         // 讀取版本號寫入version.php文件
         // 配置文件地址
         $configpath = CACHE_PATH . 'upgrade' . DIRECTORY_SEPARATOR . basename($v, ".zip") . DIRECTORY_SEPARATOR . $this->patch_charset . DIRECTORY_SEPARATOR . 'upgrade' . DIRECTORY_SEPARATOR . 'version.php';
         if (file_exists($configpath)) {
             $config = (include $configpath);
             // 版本文件地址
             $content = "<?php\ndefine('APPNAME', '" . $config['APPNAME'] . "');\ndefine('VERSION', '" . $config['VERSION'] . "');\ndefine('RELEASE', '" . $release . "');\ndefine('ECTOUCH_AUTH_KEY', '" . ECTOUCH_AUTH_KEY . "');";
             @file_put_contents(ROOT_PATH . 'data/version.php', $content);
         }
         // 刪除文件
         @unlink($upgradezip_path);
         // 刪除文件夾
         del_dir($upgradezip_source_path);
         // 提示語
         $tmp_k = $k + 1;
         if (!empty($pathlist[$tmp_k])) {
             $next_update = '<br />' . L('upgradeing') . basename($pathlist[$tmp_k], ".zip");
         } else {
             $next_update;
         }
         // 是否升級成功
         $this->message(basename($v, ".zip") . L('upgrade_success') . $next_update, url('init', array('do' => 1, 'cover' => $cover)));
     }
 }
開發者ID:noikiy,項目名稱:shop-3,代碼行數:93,代碼來源:UpgradeController.class.php


注:本文中的Zip::decompress方法示例由純淨天空整理自Github/MSDocs等開源代碼及文檔管理平台,相關代碼片段篩選自各路編程大神貢獻的開源項目,源碼版權歸原作者所有,傳播和使用請參考對應項目的License;未經允許,請勿轉載。