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


PHP Zip::factory方法代碼示例

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


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

示例1: main

 /**
  * Backup admin
  */
 public static function main()
 {
     $backups_path = ROOT . DS . 'backups';
     // Create backup
     // -------------------------------------
     if (Request::post('create_backup')) {
         if (Security::check(Request::post('csrf'))) {
             @set_time_limit(0);
             @ini_set("memory_limit", "512M");
             $zip = Zip::factory();
             // Add storage folder
             $zip->readDir(STORAGE . DS, false);
             // Add public folder
             $zip->readDir(ROOT . DS . 'public' . DS, false);
             // Add plugins folder
             $zip->readDir(PLUGINS . DS, false, null, array(PLUGINS . DS . 'box'));
             if ($zip->archive($backups_path . DS . Date::format(time(), "Y-m-d-H-i-s") . '.zip')) {
                 Notification::set('success', __('Backup was created', 'backup'));
             } else {
                 Notification::set('error', __('Backup was not created', 'backup'));
             }
             Request::redirect(Option::get('siteurl') . '/admin/index.php?id=backup');
         } else {
             die('Request was denied because it contained an invalid security token. Please refresh the page and try again.');
         }
     }
     // Delete backup
     // -------------------------------------
     if (Request::get('id') == 'backup' && Request::get('delete_file')) {
         if (Security::check(Request::get('token'))) {
             if (File::delete($backups_path . DS . Request::get('delete_file'))) {
                 Notification::set('success', __('Backup was deleted', 'backup'));
             } else {
                 Notification::set('error', __('Backup was not deleted', 'backup'));
             }
             Request::redirect(Option::get('siteurl') . '/admin/index.php?id=backup');
         } else {
             die('Request was denied because it contained an invalid security token. Please refresh the page and try again.');
         }
     }
     // Download backup
     // -------------------------------------
     if (Request::get('download')) {
         if (Security::check(Request::get('token'))) {
             File::download($backups_path . DS . Request::get('download'));
         } else {
             die('Request was denied because it contained an invalid security token. Please refresh the page and try again.');
         }
     }
     // Restore backup
     // -------------------------------------
     if (Request::get('restore')) {
         if (Security::check(Request::get('token'))) {
             $tmp_dir = ROOT . DS . 'tmp' . DS . uniqid('backup_');
             if (Dir::create($tmp_dir)) {
                 $file_locations = Zip::factory()->extract($backups_path . DS . Request::get('restore'), $tmp_dir);
                 if (!empty($file_locations)) {
                     Dir::copy($tmp_dir, ROOT . DS);
                     Notification::set('success', __('Backup was restored', 'backup'));
                 } else {
                     Notification::set('error', __('Unzip error', 'backup'));
                 }
             } else {
                 Notification::set('error', __('Backup was not restored', 'backup'));
             }
             Request::redirect(Option::get('siteurl') . '/admin/index.php?id=backup');
         } else {
             die('Request was denied because it contained an invalid security token. Please refresh the page and try again.');
         }
     }
     // Display view
     View::factory('box/backup/views/backend/index')->assign('backups_list', File::scan($backups_path, '.zip'))->display();
 }
開發者ID:rowena-altastratus,項目名稱:altastratus,代碼行數:76,代碼來源:backup.admin.php

示例2: main

 /**
  * Plugins admin
  */
 public static function main()
 {
     // Get siteurl
     $site_url = Option::get('siteurl');
     // Get installed plugin from $plugins array
     $installed_plugins = Plugin::$plugins;
     // Get installed users plugins
     $_users_plugins = array();
     foreach (Plugin::$plugins as $plugin) {
         if ($plugin['privilege'] !== 'box') {
             $_users_plugins[] = $plugin['id'];
         }
     }
     // Get plugins table
     $plugins = new Table('plugins');
     // Delete plugin
     // -------------------------------------
     if (Request::get('delete_plugin')) {
         if (Security::check(Request::get('token'))) {
             // Nobody cant remove box plugins
             if ($installed_plugins[Text::lowercase(str_replace("Plugin", "", Request::get('delete_plugin')))]['privilege'] !== 'box') {
                 // Run plugin uninstaller file
                 $plugin_name = Request::get('delete_plugin');
                 if (File::exists(PLUGINS . DS . $plugin_name . DS . 'install' . DS . $plugin_name . '.uninstall.php')) {
                     include PLUGINS . DS . $plugin_name . DS . 'install' . DS . $plugin_name . '.uninstall.php';
                 }
                 // Clean Monstra TMP folder.
                 Monstra::cleanTmp();
                 // Increment Styles and Javascript version
                 Stylesheet::stylesVersionIncrement();
                 Javascript::javascriptVersionIncrement();
                 // Delete plugin form plugins table
                 $plugins->deleteWhere('[name="' . Request::get('delete_plugin') . '"]');
                 // Redirect
                 Request::redirect('index.php?id=plugins');
             }
         } else {
             die('Request was denied because it contained an invalid security token. Please refresh the page and try again.');
         }
     }
     // Install new plugin
     // -------------------------------------
     if (Request::get('install')) {
         if (Security::check(Request::get('token'))) {
             // Load plugin install xml file
             $plugin_xml = XML::loadFile(PLUGINS . DS . basename(Text::lowercase(Request::get('install')), '.manifest.xml') . DS . 'install' . DS . Request::get('install'));
             // Add plugin to plugins table
             $plugins->insert(array('name' => basename(Request::get('install'), '.manifest.xml'), 'location' => (string) $plugin_xml->plugin_location, 'status' => (string) $plugin_xml->plugin_status, 'priority' => (int) $plugin_xml->plugin_priority));
             // Clean Monstra TMP folder.
             Monstra::cleanTmp();
             Stylesheet::stylesVersionIncrement();
             Javascript::javascriptVersionIncrement();
             // Run plugin installer file
             $plugin_name = str_replace(array("Plugin", ".manifest.xml"), "", Request::get('install'));
             if (File::exists(PLUGINS . DS . basename(Text::lowercase(Request::get('install')), '.manifest.xml') . DS . 'install' . DS . $plugin_name . '.install.php')) {
                 include PLUGINS . DS . basename(Text::lowercase(Request::get('install')), '.manifest.xml') . DS . 'install' . DS . $plugin_name . '.install.php';
             }
             Request::redirect('index.php?id=plugins');
         } else {
             die('Request was denied because it contained an invalid security token. Please refresh the page and try again.');
         }
     }
     // Delete plugin from server
     // -------------------------------------
     if (Request::get('delete_plugin_from_server')) {
         if (Security::check(Request::get('token'))) {
             // Clean Monstra TMP folder.
             Monstra::cleanTmp();
             Stylesheet::stylesVersionIncrement();
             Javascript::javascriptVersionIncrement();
             Dir::delete(PLUGINS . DS . basename(Request::get('delete_plugin_from_server'), '.manifest.xml'));
             Request::redirect('index.php?id=plugins');
         } else {
             die('Request was denied because it contained an invalid security token. Please refresh the page and try again.');
         }
     }
     // Upload & extract plugin archive
     // -------------------------------------
     if (Request::post('upload_file')) {
         if (Security::check(Request::post('csrf'))) {
             if ($_FILES['file']) {
                 if (in_array(File::ext($_FILES['file']['name']), array('zip'))) {
                     $tmp_dir = ROOT . DS . 'tmp' . DS . uniqid('plugin_');
                     $error = 'Plugin was not uploaded';
                     if (Dir::create($tmp_dir)) {
                         $file_locations = Zip::factory()->extract($_FILES['file']['tmp_name'], $tmp_dir);
                         if (!empty($file_locations)) {
                             $manifest = '';
                             foreach ($file_locations as $filepath) {
                                 if (substr($filepath, -strlen('.manifest.xml')) === '.manifest.xml') {
                                     $manifest = $filepath;
                                     break;
                                 }
                             }
                             if (!empty($manifest) && basename(dirname($manifest)) === 'install') {
                                 $manifest_file = pathinfo($manifest, PATHINFO_BASENAME);
                                 $plugin_name = str_replace('.manifest.xml', '', $manifest_file);
//.........這裏部分代碼省略.........
開發者ID:rowena-altastratus,項目名稱:altastratus,代碼行數:101,代碼來源:plugins.admin.php


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