尚未完善,大家共同研究
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;
- }
- }