用户注册



邮箱:

密码:

用户登录


邮箱:

密码:
记住登录一个月忘记密码?

发表随想


还能输入:200字
云代码 - php代码库

PHP缓存类 Cache (文件实现)

2014-11-11 作者: php源代码大全举报

[php]代码库

<? 
/*
用户需要事先定义的常量:
_CachePath_        模板缓存路径
_CacheEnable_        自动缓存机制是否开启,未定义或为空,表示关闭自动缓存机制
_ReCacheTime_        自动重新缓存间隔时间,单位为秒,未定义或为空,表示关闭自动重新缓存
*/ 
   
class cache
{
    var $cachefile
    var $cachefilevar
   
    function cache()
    
        //生成当前页的Cache组文件名 $this->cachefilevar 及文件名 $this->cachefile 
        //动态页的参数不同对应的Cache文件也不同,但是每一个动态页的所有Cache文件都有相同的文件名,只是扩展名不同 
        $s=array(".","/");$r=array("_",""); 
        $this->cachefilevar=str_replace($s,$r,$_SERVER["SCRIPT_NAME"])."_".$_GET[_ActionVar_]; 
        $this->cachefile=$this->cachefilevar.".".md5($_SERVER["REQUEST_URI"]); 
    
   
    //删除当前页/模块的缓存 
    function delete()
    
        //删除当前页的缓存 
        $d = dir(_CachePath_); 
        $strlen=strlen($this->cachefilevar); 
        //返回当前页的所有Cache文件组 
        while (false !== ($entry = $d->read()))
        
            if (substr($entry,0,$strlen)==$this->cachefilevar)
            
                if (!unlink(_CachePath_."/".$entry)) {echo "Cache目录无法写入";exit;} 
            
        
    
   
    //判断是否已Cache过,以及是否需要Cache 
    function check()
    
        //如果设置了缓存更新间隔时间 _ReCacheTime_ 
        if (_ReCacheTime_+0>0)
        
            //返回当前页Cache的最后更新时间 
            $var=@file(_CachePath_."/".$this->cachefilevar);$var=$var[0]; 
            //如果更新时间超出更新间隔时间则删除Cache文件 
            if (time()-$var>_ReCacheTime_)
            
                $this->delete();$ischage=true; 
            
        
        //返回当前页的Cache 
        $file=_CachePath_."/".$this->cachefile; 
        //判断当前页Cache是否存在 且 Cache功能是否开启 
        return (file_exists($file) and _CacheEnable_ and !$ischange); 
    
   
    //读取Cache 
    function read()
    
        //返回当前页的Cache 
        $file=_CachePath_."/".$this->cachefile; 
        //读取Cache文件的内容 
        if (_CacheEnable_) return readfile($file); 
        else return false; 
    
   
    //生成Cache 
    function write($output)
    
        //返回当前页的Cache 
        $file=_CachePath_."/".$this->cachefile; 
        //如果Cache功能开启 
        if (_CacheEnable_)
        
            //把输出的内容写入Cache文件 
            $fp=@fopen($file,'w'); 
            if (!@fputs($fp,$output)) {echo "模板Cache写入失败";exit;} 
            @fclose($fp); 
            //如果设置了缓存更新间隔时间 _ReCacheTime_ 
            if (_ReCacheTime_+0>0)
            
                //更新当前页Cache的最后更新时间 
                $file=_CachePath_."/".$this->cachefilevar; 
                $fp=@fopen($file,'w'); 
                if (!@fwrite($fp,time())) {echo "Cache目录无法写入";exit;} 
                @fclose($fp); 
            
        
    
?>


网友评论    (发表评论)


发表评论:

评论须知:

  • 1、评论每次加2分,每天上限为30;
  • 2、请文明用语,共同创建干净的技术交流环境;
  • 3、若被发现提交非法信息,评论将会被删除,并且给予扣分处理,严重者给予封号处理;
  • 4、请勿发布广告信息或其他无关评论,否则将会删除评论并扣分,严重者给予封号处理。


扫码下载

加载中,请稍后...

输入口令后可复制整站源码

加载中,请稍后...