Esempio n. 1
0
 /**
  * Load a settings file. 
  * Can auto detect file type from the file's extention.
  * @param string $filename file to load.
  * @param string|null $type The type of file being loaded.
  * @param boolean $array Return data as an array or object.
  * @return array|stdClass Data from file.
  */
 public function load($filename, $type = null, $array = false)
 {
     if ($type == null) {
         $type = strtoupper(pathinfo($filename, PATHINFO_EXTENSION));
     }
     $data = NULL;
     if (file_exists($filename)) {
         switch ($type) {
             case 'JSON':
                 $io = new IO();
                 $data = $io->read($filename);
                 if ($data === false) {
                     return null;
                 }
                 $data = json_decode($data, $array);
                 break;
             case 'INI':
                 $data = $array ? parse_ini_file($filename, true) : (object) parse_ini_file($filename, true);
                 if ($data === false) {
                     $data = NULL;
                 }
                 break;
             default:
                 $data = NULL;
         }
     }
     return $data;
 }
Esempio n. 2
0
 function get($key, $clearStaticKey = false)
 {
     static $data;
     // 提供给 SET 进行通知,清除静态缓存数据
     if ($clearStaticKey) {
         unset($data[$key]);
         return false;
     }
     $p = $this->_getSavePath($key);
     if (isset($data[$key]) && file_exists($p['p'])) {
         return $data[$key];
     }
     if (!file_exists($p['p'])) {
         return false;
     }
     $content = IO::read($p['p']);
     $content = str_replace("<?php die('Permission denied');?>\n", "", $content);
     $d = unserialize($content);
     $d = $d[$key];
     if (empty($d['ttl']) || $d['timeout'] > TIMESTAMP) {
         $data[$key] = is_array($d['data']) ? $d['data'] : rawurldecode($d['data']);
         return $data[$key];
     }
     return false;
 }
Esempio n. 3
0
 /**
  * Load cache file
  * @param string $name Cache name
  */
 public static function getCache($name)
 {
     return new Cache($name, IO::read(self::getFullpathFromName($name)));
 }