当前位置: 首页>>代码示例>>PHP>>正文


PHP elFinder::sessionClosed方法代码示例

本文整理汇总了PHP中elFinder::sessionClosed方法的典型用法代码示例。如果您正苦于以下问题:PHP elFinder::sessionClosed方法的具体用法?PHP elFinder::sessionClosed怎么用?PHP elFinder::sessionClosed使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在elFinder的用法示例。


在下文中一共展示了elFinder::sessionClosed方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。

示例1: exec

 /**
  * Exec command and return result
  *
  * @param  string  $cmd  command name
  * @param  array   $args command arguments
  * @return array
  * @author Dmitry (dio) Levashov
  **/
 public function exec($cmd, $args)
 {
     if (!$this->loaded) {
         return array('error' => $this->error(self::ERROR_CONF, self::ERROR_CONF_NO_VOL));
     }
     if ($this->session_expires()) {
         return array('error' => $this->error(self::ERROR_SESSION_EXPIRES));
     }
     if (!$this->commandExists($cmd)) {
         return array('error' => $this->error(self::ERROR_UNKNOWN_CMD));
     }
     if (!empty($args['mimes']) && is_array($args['mimes'])) {
         foreach ($this->volumes as $id => $v) {
             $this->volumes[$id]->setMimesFilter($args['mimes']);
         }
     }
     // call pre handlers for this command
     $args['sessionCloseEarlier'] = isset($this->sessionUseCmds[$cmd]) ? false : $this->sessionCloseEarlier;
     if (!empty($this->listeners[$cmd . '.pre'])) {
         $volume = isset($args['target']) ? $this->volume($args['target']) : false;
         foreach ($this->listeners[$cmd . '.pre'] as $handler) {
             call_user_func_array($handler, array($cmd, &$args, $this, $volume));
         }
     }
     // unlock session data for multiple access
     if ($this->sessionCloseEarlier && $args['sessionCloseEarlier'] && session_id()) {
         session_write_close();
         elFinder::$sessionClosed = true;
     }
     if (substr(PHP_OS, 0, 3) === 'WIN') {
         // set time out
         if (($_max_execution_time = ini_get('max_execution_time')) && $_max_execution_time < 300) {
             @set_time_limit(300);
         }
     }
     $result = $this->{$cmd}($args);
     if (isset($result['removed'])) {
         foreach ($this->volumes as $volume) {
             $result['removed'] = array_merge($result['removed'], $volume->removed());
             $volume->resetRemoved();
         }
     }
     // call handlers for this command
     if (!empty($this->listeners[$cmd])) {
         foreach ($this->listeners[$cmd] as $handler) {
             if (call_user_func_array($handler, array($cmd, &$result, $args, $this))) {
                 // handler return true to force sync client after command completed
                 $result['sync'] = true;
             }
         }
     }
     // replace removed files info with removed files hashes
     if (!empty($result['removed'])) {
         $removed = array();
         foreach ($result['removed'] as $file) {
             $removed[] = $file['hash'];
         }
         $result['removed'] = array_unique($removed);
     }
     // remove hidden files and filter files by mimetypes
     if (!empty($result['added'])) {
         $result['added'] = $this->filter($result['added']);
     }
     // remove hidden files and filter files by mimetypes
     if (!empty($result['changed'])) {
         $result['changed'] = $this->filter($result['changed']);
     }
     if ($this->debug || !empty($args['debug'])) {
         $result['debug'] = array('connector' => 'php', 'phpver' => PHP_VERSION, 'time' => $this->utime() - $this->time, 'memory' => (function_exists('memory_get_peak_usage') ? ceil(memory_get_peak_usage() / 1024) . 'Kb / ' : '') . ceil(memory_get_usage() / 1024) . 'Kb / ' . ini_get('memory_limit'), 'upload' => $this->uploadDebug, 'volumes' => array(), 'mountErrors' => $this->mountErrors);
         foreach ($this->volumes as $id => $volume) {
             $result['debug']['volumes'][] = $volume->debug();
         }
     }
     foreach ($this->volumes as $volume) {
         $volume->umount();
     }
     if (!empty($result['callback'])) {
         $result['callback']['json'] = json_encode($result);
         $this->callback($result['callback']);
     } else {
         return $result;
     }
 }
开发者ID:ovalek,项目名称:elFinder,代码行数:91,代码来源:elFinder.class.php

示例2: exec

 /**
  * Exec command and return result
  *
  * @param  string  $cmd  command name
  * @param  array   $args command arguments
  * @return array
  * @author Dmitry (dio) Levashov
  **/
 public function exec($cmd, $args)
 {
     // set error handler of WARNING, NOTICE
     set_error_handler('elFinder::phpErrorHandler', E_WARNING | E_NOTICE | E_USER_WARNING | E_USER_NOTICE);
     if (!$this->loaded) {
         return array('error' => $this->error(self::ERROR_CONF, self::ERROR_CONF_NO_VOL));
     }
     if ($this->session_expires()) {
         return array('error' => $this->error(self::ERROR_SESSION_EXPIRES));
     }
     if (!$this->commandExists($cmd)) {
         return array('error' => $this->error(self::ERROR_UNKNOWN_CMD));
     }
     if (!empty($args['mimes']) && is_array($args['mimes'])) {
         foreach ($this->volumes as $id => $v) {
             $this->volumes[$id]->setMimesFilter($args['mimes']);
         }
     }
     // detect destination dirHash and volume
     $dstVolume = false;
     $dst = !empty($args['target']) ? $args['target'] : (!empty($args['dst']) ? $args['dst'] : '');
     if ($dst) {
         $dstVolume = $this->volume($dst);
     } else {
         if (isset($args['targets']) && is_array($args['targets']) && isset($args['targets'][0])) {
             $dst = $args['targets'][0];
             $dstVolume = $this->volume($dst);
             if (($_stat = $dstVolume->file($dst)) && !empty($_stat['phash'])) {
                 $dst = $_stat['phash'];
             } else {
                 $dst = '';
             }
         }
     }
     $result = null;
     // call pre handlers for this command
     $args['sessionCloseEarlier'] = isset($this->sessionUseCmds[$cmd]) ? false : $this->sessionCloseEarlier;
     if (!empty($this->listeners[$cmd . '.pre'])) {
         $_break = false;
         foreach ($this->listeners[$cmd . '.pre'] as $handler) {
             $_res = call_user_func_array($handler, array($cmd, &$args, $this, $dstVolume));
             if (is_array($_res)) {
                 if (!empty($_res['preventexec'])) {
                     $result = array('error' => true);
                     if ($cmd === 'upload' & !empty($args['node'])) {
                         $result['callback'] = array('node' => $args['node'], 'bind' => $cmd);
                     }
                     if (!empty($_res['results']) && is_array($_res['results'])) {
                         $result = array_merge($result, $_res['results']);
                     }
                     break;
                 }
             }
         }
     }
     // unlock session data for multiple access
     if ($this->sessionCloseEarlier && $args['sessionCloseEarlier']) {
         $this->session->close();
         // deprecated property
         elFinder::$sessionClosed = true;
     }
     if (substr(PHP_OS, 0, 3) === 'WIN') {
         // set time out
         elFinder::extendTimeLimit(300);
     }
     if (!is_array($result)) {
         try {
             $result = $this->{$cmd}($args);
         } catch (Exception $e) {
             $result = array('error' => htmlspecialchars($e->getMessage()), 'sync' => true);
         }
     }
     // check change dstDir
     $changeDst = false;
     if ($dst && $dstVolume && (!empty($result['added']) || !empty($result['removed']))) {
         $changeDst = true;
     }
     foreach ($this->volumes as $volume) {
         $removed = $volume->removed();
         if (!empty($removed)) {
             if (!isset($result['removed'])) {
                 $result['removed'] = array();
             }
             $result['removed'] = array_merge($result['removed'], $removed);
             if (!$changeDst && $dst && $dstVolume && $volume === $dstVolume) {
                 $changeDst = true;
             }
         }
         $added = $volume->added();
         if (!empty($added)) {
             if (!isset($result['added'])) {
                 $result['added'] = array();
//.........这里部分代码省略.........
开发者ID:nao-pon,项目名称:xelfinder,代码行数:101,代码来源:elFinder.class.php


注:本文中的elFinder::sessionClosed方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。