今日写完的缓存类

Pader2009年1月30日 发表于 网页与编程 php 缓存

 尚未完善,大家共同研究

<?php         
/*        
  缓存类 of www.vgot.cn by pader        
  09-1-30 13:34        
*/          
      
define('CACHE_DIR',dirname(__FILE__).'/cache');      
  
class cache {   
    var $cache = array();   
       
    //获取缓存   
    function getCache($cacheName) {   
        include $this->cacheFile($cacheName);   
        $this->cache[$cacheName] = $cache[$cacheName];   
        return $this->cache[$cacheName];   
    }   
  
    //存储缓存   
    function saveCache($cacheName,$cacheVar){   
        $cacheCode = "<?php\r\n//Cache create at ".date('Y-m-d H:i:s')."\r\n";   
        $cacheCode .= '$cache[\''.$cacheName.'\'] = ';   
        $cacheCode .= $this->createVarCode($cacheVar);   
        $cacheCode .= ";\r\n";   
        return $this->writeFile($this->cacheFile($cacheName),$cacheCode) ? true : false;   
    }   
  
    //创建缓存变量原生态代码   
    function createVarCode($myVar,$level=0) {   
        $tabEnd = '';   
        for($i=0;$i<$level;$i++) {   
            $tabEnd .= "\t";   
        }   
        $tab = $tabEnd."\t";   
        if(is_array($myVar)) {   
            $varCode = "array(\r\n";   
            foreach($myVar as $key => $val) {   
                $key = is_numeric($key) ? $key : '\''.$key.'\'';   
                if(is_array($val)) {   
                    $varCode .= $tab.$key.' => '.$this->createVarCode($val,$level + 1);   
                } else {   
                    $varCode .= $tab.$key.' => \''.$this->addslashes($val).'\'';   
                }   
                $varCode .= ",\r\n";   
            }   
            $varCode = substr_replace($varCode,'',-3,1)."$tabEnd)";   
        } else {   
            $varCode = '\''.$this->addslashes($myVar).'\'';   
        }   
        return $varCode;   
    }   
       
    function addslashes($text) {   
        $text = addcslashes($text,'\\');  
        $text = addcslashes($text,'\'');   
        return $text;   
    }   
  
    //返回缓存文件地址   
    function cacheFile($cacheName) {   
        $cacheFile = CACHE_DIR.'/'.$cacheName.'.php';   
        return $cacheFile;   
    }   
  
    function deleteCache($cacheName) {   
        return @unlink($this->cacheFile($cacheName)) ? true : false;   
    }   
  
    function printCache() {   
        print_r($this->cache);   
    }   
  
    //写文件   
    function writeFile($fileName,$content,$wmode='w'){   
        $s = false;   
        if($fp = @fopen($fileName,$wmode)) {   
            if(flock($fp,LOCK_EX)) {   
                $s = @fwrite($fp,$content) ? true : false;    
                flock($fp,LOCK_UN);   
                fclose($fp);   
            }   
        }   
        return $s;   
    }   
}


评论 共有 2 条评论

  • 眉山网站建设 2009-2-20

    这一段PHP代码写得不错啊,学习了,谢谢.

  • jeccy 2009-2-6

    你好,之前的域名buluka.cn暂停使用,更改为www.walleve.com 友情链接更改请求: 将JECCY's blog 修改为 Walleve-Team 地址更换为:http://www.walleve.com 描述为:相濡以沫,不若相忘于江湖