RSS订阅
PHP程序员站--WWW.PHPERZ.COM  
网站地图
高级搜索
收藏本站

 当前位置:主页 >> PHP高级编程 >> 开发技巧 >> 文章内容
php的缓存类
[收藏此页[打印本页]   
来源:互联网  作者:未知  发布时间:2008-01-13

 php的缓存类

以下为引用的内容:
<?php
/*
*     FileName                     :     cache.inc.php
*     Link                             :     [url]http://blog.csdn.net/dxflingxing/[/url]

PHP程序员站


*     Author                             :     dxflingxing
*     Date                             :     2006-5-9
*     Last Modified                 :     2006-5-16
*     Version                             :     1.0.1
*     Description                     :     Cache a page in file formart
www~phperz~.com

*     Notice                             :     Make sure you cache file dir can be readed and wrote
*
*     Thanks to                     :     小邪,barryonline(寒)
************************************************************
*
*     Usage                             :
*             # Cache active time half an hour
*             # This Can Auotmatic make some none exist dirs PHP程序员站--PHP程序员之家
*             # Or you can use an cache file in curent dir
*             # The Usage Such as 
*             # $cache     = new cache(string cache_name,int seconds);
*
*             require ('cache.inc.php');
*             $cache     = new cache('dir1/dir2/cache_name.htm',60*30);     
*
*             $cache->start();
*
*             # Your Page Contents With print

PHP程序员站


*             phpinfo();
*
*             $cache->_end();
*
*/
    
class cache 
{
     var 
$_file
;
     var 
$cache_time
;
    
     function 
cache($_file='_index.htm',$cache_time=1
) { PHP程序员站
             
$this->_file             $_file
;
             
$this->cache_time     $cache_time
;
     }
    
     
/*
     * Start cache method without Return
     */ PHP程序员站--PHP程序员之家
     
function start
() {
         
             if(
$this->cache_is_active
()) {
                 include(
$this->_file
);
                 exit;
                 }
             
ob_start
();

phperz.com


     }
    
     
/*
     * End of cache method without Return
     */
     
function _end
() {
             
$this->make_cache
();
             
ob_end_flush
();
     }
    
     
/*
PHP程序员站

     * Check if cache file is actived
     * Return true/false
     */
     
function cache_is_active
() {
             if (
$this->cache_is_exist
()) {
                 if (
time() - $this->lastModified() < $this->cache_time
) phperz.com
                     Return 
true
;
                 else {
                     Return 
false
;
                 } 
             }
             else {
                 Return 
false
; www phperz com
             } 
     }
    
     
/*
     * Create cache file
     * Return true/false
     */
     
function make_cache
() {
             
$content     $this->get_cache_content
();
             if(
$this->write_file($content
)) { PHP程序员站--PHP程序员之家
                 Return 
true
;
             }
             else {
                 Return 
false
;
             }
     }
    
     
/*
     * Check if cache file is exists
     * Return true/false
     */
www phperz com

     
function cache_is_exist
() {
             if(
file_exists($this->_file
)) {
                 Return 
true
;
             }
             else {
                 Return 
false
; phperz.com
             }
     }
    
     
/*
     * Return last Modified time in bollin formart
     * Usage: $lastmodified = $this->lastModified();
     */
     
function lastModified
() {
             Return @
filemtime($this->_file
);
     }
PHP程序员站--PHP程序员之家

    
     
/*
     * Return Content of Page
     * Usage: $content = $this->get_cache_content();
     */
     
function get_cache_content
() {
             
$contents ob_get_contents
();
//             Return '<!--'.date('Y-m-d H:i:s').'-->'.$contents;
             
Return $contents
; www.phperz.com
     }
    
     
/*Write content to $this->_file 
     * Return true/false
     * Usage: $this->write_file($content);
     **/
     
function write_file($content,$mode='w+'
)
     {
             
$this->mk_dir($this->_file
);
PHP程序员站--PHP程序员之家

             if (!
$fp = @fopen($this->_file,$mode
)) {
                 
$this->report_Error($this->_file." 目录或者文件属性无法写入."
);
                 Return 
false
; www~phperz~.com
             } else{
                 @
fwrite($fp,$content
);
                 @
fclose($fp
);
                 @
umask($oldmask
);
                 Return 
true
;
www phperz com

             }
     }
    
     
/*
     * Make given dir included in $this->_file
     * Without Return
     * Usage: $this->mk_dir();
     */
     
function mk_dir
()
     {     
//$this->_file     = str_replace('','/');
             
$dir     = @explode("/"$this->_file
); PHP程序员站
             
$num     = @count($dir)-1
;
             
$tmp     './'
;
             for(
$i=0$i<$num$i
++){
www.phperz.com

                 
$tmp     .= $dir[$i
];
                 if(!
file_exists($tmp
)){
                     @
mkdir($tmp
);
                     @
chmod($tmp0777
);

www phperz com


                 }
                 
$tmp     .= '/'
;
             }
     }
    
     
/*
     * Unlink an exists cache
     * Return true/false
     * Usage: $this->clear_cache();
     */
     
function clear_cache
() { www phperz com
             if (!@
unlink($this->_file
)) {
                 
$this->report_Error('Unable to remove cache'
);
                 Return 
false
;
             }
             else {
www~phperz~.com

                 Return 
true
;
             }
     }
    
     
/*
     * Report Error Messages
     * Usage: $this->report_Error($message);
     */
     
function report_Error($message=NULL
) {
             if(
$message!=NULL
) {

PHP程序员站


                 
trigger_error($message
);     
             }
     }
}
?>

 上一篇:如何提高你的PHP编程技术   下一篇:防止被IFRAME的代码
 
 相关文章
 
发表评论
全部评论(0条)
 
 站内搜索
 热门搜索 mysql  基础  php基础  url
高级搜索 网站地图 站长工具 IP查询 收藏本站
 热点文章
 随机推荐
网站首页 | 网站地图 | 高级搜索 | RSS订阅
PHP程序员站 Copyright © 2007,PHPERZ.COM All Rights Reserved 粤ICP备07503606号 联系站长