贴一个Cache类个人用得不错--by abbish

转载 2004年09月09日 17:09:00
class cache{   

    var
$cacheDirectory;

    

    var
$cacheDuration=3600;

    

    var
$cacheFilename;



    function
cache($cacheDuration=3600,$cacheDirectory='./cache')

    {

        
$this->cacheDuration = 0;

        
$this->cacheFilename = '';

        
$this->cacheDirectory = '.';

        
$this->updateCache($cacheDuration,$cacheDirectory);

    }



    function
_makeCacheFolder()

    {

        if (!
is_dir($this->cacheDirectory))

        {

            
$temp = explode('/',$this->cacheDirectory);

            
$cur_dir = '';

            for(
$i=0;$i<count($temp);$i++)

            {

                
$cur_dir .= $temp[$i].'/';

                if (!
is_dir($cur_dir))

                {

                    if (@
mkdir($cur_dir,777)&&($cur_dir!=getcwd()))

                    {

                        
$this->_writeFile($cur_dir.'.htaccess','Deny from all');

                        
$this->_writeFile($cur_dir.'index.html','');

                    }

                }

            }

        }

        

    }



    function
getCacheFilename()

    {

        return
$this->cacheFilename;

    }



     function
_setCacheFilename($contents)

     {

        
$this->cacheFilename = $this->cacheDirectory.'/'.md5($contents).'.txt';

     }



     function
inCache($contents,$sty='')

     {

         
$this->_setCacheFilename($contents);

        if(
$sty==1)

         {

            return
file_exists($this->cacheFilename);

         }

         else

         {

            if(
file_exists($this->cacheFilename))

             {

                
$tim=filemtime($this->cacheFilename);

                if((
time()-$tim)>$this->cacheDuration)

                 {

                    return
false;

                 }

                 else

                 {

                    return
true;

                 }

             }

             else

             {

                 return
false;

             }

         }

     }



     function
readCache()

     {

         
$contents = '';

         
$fp = @fopen($this->cacheFilename,'r');

        if (
$fp)

        {

            while(!
feof($fp)) $contents .= fread($fp,4096);

            
fclose($fp);

        }

        return
$contents;

     }

    

    function
updateCache($cacheDuration=3600,$cacheFolder='./cache')

    {

        
$this->cacheDuration = $cacheDuration;

        
$this->cacheDirectory = $cacheFolder;

        
$this->_makeCacheFolder();

    }

    

     function
saveInCache($contents,$filename='')

     {

            if (
trim($filename)=='') $filename = $contents;

            if (
$this->inCache($filename,1))

            {

                if((
time()-filemtime($this->cacheFilename))>$this->cacheDuration)

                {

                    @
unlink($this->cacheFilename);

                }

            }

            
$this->_writeFile($this->cacheFilename,$contents);

     }



     function
_writeFile($filename,$contents)

     {

         if (!
file_exists($filename))

         {

             
$fp = @fopen($filename,'w');

             if (
$fp)

             {

                
fputs($fp,$contents);

                
fclose($fp);

             }

         }

        else

         {

            
unlink($filename);

            
$fp = @fopen($filename,'w');

             if (
$fp)

             {

                
fputs($fp,$contents);

                
fclose($fp);

             }

         }

     }



}

?>
#  www.openshow.org

#  寻求合作开源技术网站

#  联系QQ:47641788



Class abbish

{

    var
$username;

    var
$mywebsite;

    function
abbish()

    {

        
$this->username="abbish";

        
$this->mywebsite=array("Downv"=>"http://www.downv.com","OpenShow"=>"http://www.openshow","More"=>"... ...");

    }



    function
output()

    {

        print
$this->username;

        
print_r $this->mywebsite;

    }

}

一张图让你详细理解Group By的分组聚合过程

原文链接:http://www.datastudy.cc/to/57 Group By分组聚合是我们在使用过程中使用最多的SQL之一(另外一个使用最多的估计就是JOIN了吧),为了让...
  • qq_28219759
  • qq_28219759
  • 2016年10月29日 12:08
  • 1577

用java设计一个员工类,可以计算工资个人所得税

用java设计一个员工类,可以设计工资个人所得税 设计一个员工类。该员工具有下列私有属性:编号,姓名,基本工资,奖金  提供有参构造函数:Employee(Strng ID,String name)...
  • u010043538
  • u010043538
  • 2013年10月16日 02:29
  • 4476

Unity3d 人物换装之 一个Shader处理3张图片 减少DrawCall

虽然GameObject数量减少了,但是DrawCall一个都没有减少哦!之前是4个,合并之后仍然是4个。简单的来说呢,就是一个材质球,一个DrawCall。也就是说呢,一个Shader,一个Draw...
  • cp790621656
  • cp790621656
  • 2015年03月24日 00:51
  • 4003

一个串口CserialPort类,很好用得。

  • 2012年10月05日 10:10
  • 4KB
  • 下载

贴一个不错的git教程

原文链接:http://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000总结:安装完后,tell ...
  • qq_21158525
  • qq_21158525
  • 2016年11月24日 21:59
  • 211

activiti 快速入门--一个比较不错的操作工具类

驳回流程、取回流程、清空指定活动节点流向 、提交流程/流程转向、中止流程(特权人直接审批通过等)、挂起等核心操作...
  • u011320740
  • u011320740
  • 2016年11月02日 15:40
  • 2125

一个非常不错的哈希表的模板类 .

template struct HashTableNode ...{ T varValue; N varName; HashTableNode *next; ...
  • kevin_ysu
  • kevin_ysu
  • 2011年09月15日 13:53
  • 382

qq群里分享的一个不错的curl多线程处理抓取网页信息类

  • kissxia
  • kissxia
  • 2015年04月24日 10:55
  • 590

一个不错的Android wifi工具类

最近在做一个项目,其中涉及到一块“自动连接已存在的wifi热点”的功能,在网上查阅了大量资料,五花八门,但其中一些说的很简单,即不能实现傻瓜式的拿来就用,有些说的很详细,但其中不乏些许错误造成功能无法...
  • muzhengjun
  • muzhengjun
  • 2015年07月15日 09:40
  • 210

一个不错的MySQL类

包含CRUD,事务,树递归查询,分页等. 演示简单的魅力. 所有的参数都escape了,不存在注入问题.   /*   * Anthony.chen   * 2010 reserve...
  • xiaomage_cn
  • xiaomage_cn
  • 2012年04月21日 11:02
  • 272
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:贴一个Cache类个人用得不错--by abbish
举报原因:
原因补充:

(最多只允许输入30个字)