⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 hashed_cache_lite.php

📁 一个基于web的开源项目管理工具
💻 PHP
字号:
<?php/* * phpGACL - Generic Access Control List - Hashed Directory Caching.  * Copyright (C) 2002 Mike Benoit * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA * * For questions, help, comments, discussion, etc., please join the * phpGACL mailing list. http://sourceforge.net/mail/?group_id=57103 * * You may contact the author of phpGACL by e-mail at: * ipso@snappymail.ca * * The latest version of phpGACL can be obtained from: * http://phpgacl.sourceforge.net/ * */require_once(dirname(__FILE__) .'/Cache_Lite.php');define('DIR_SEP', DIRECTORY_SEPARATOR);class Hashed_Cache_Lite extends Cache_Lite{    /**    * Memory caching variable    *     * @var array $_memoryCache    */    var $_memoryCache = NULL;    /**    * Test if a cache is available and (if yes) return it - Original version by Fabien MARTY <fab@php.net>	    *    * @param string $id cache id    * @param string $group name of the cache group    * @param boolean $doNotTestCacheValidity if set to true, the cache validity won't be tested    * @return string data of the cache (or false if no cache available)    * @access public    */    function get($id, $group = 'default', $doNotTestCacheValidity = false)    {        $this->_id = $id;        $this->_group = $group;        if ($this->_caching) {			if ($this->_memoryCache[$group.'-'.$id]) {				return ($this->_memoryCache[$group.'-'.$id]);			} else {				$this->_setFileName($id, $group);				if ($doNotTestCacheValidity) {					if (file_exists($this->_file)) {						$this->_memoryCache[$group.'-'.$id] = $this->_read();						return ( ($this->_memoryCache[$group.'-'.$id]) );					}				} else {					if (@filemtime($this->_file) > $this->_refreshTime) {						$this->_memoryCache[$group.'-'.$id] = $this->_read();						return ( ($this->_memoryCache[$group.'-'.$id]) );					}				}			}        }        return false;    }    /**    * Make a file name (with path)    *    * @param string $id cache id    * @param string $group name of the group    * @access private    */    function _setFileName($id, $group)    {		//CRC32 with SUBSTR is still faster then MD5.		$encoded_id = substr(crc32($id),1);		//$encoded_id = md5($id);				//Generate just the directory, so it can be created.		//Groups will have there own top level directory, for quick/easy purging of an entire group.		$dir = $this->_cacheDir.$group.'/'.substr($encoded_id,0,3);		$this->_create_dir_structure($dir);				$this->_file = $dir.'/'.$encoded_id;    }    /**    * Create full directory structure, Ripped straight from the Smarty Template engine.	* Version:     2.3.0	* Copyright:   2001,2002 ispi of Lincoln, Inc.    *    * @param string $dir Full directory.    * @access private    */    function _create_dir_structure($dir)    {        if (!@file_exists($dir)) {            $dir_parts = preg_split('!\\'.DIR_SEP.'+!', $dir, -1, PREG_SPLIT_NO_EMPTY);            $new_dir = ($dir{0} == DIR_SEP) ? DIR_SEP : '';            foreach ($dir_parts as $dir_part) {                $new_dir .= $dir_part;                if (!file_exists($new_dir) && !mkdir($new_dir, 0771)) {					Cache_Lite::raiseError('Cache_Lite : problem creating directory \"$dir\" !', -3);                       return false;                }                $new_dir .= DIR_SEP;            }        }    }}?>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -