首页 > php框架 > php文件缓存实例代码

php文件缓存实例代码

php教程文件缓存实例代码

缓存在实际使用当中应用很广泛,可以减轻对服务器php教程的访问,提高运行速度。目前很多cms内容管理系统中频繁使用缓存机制来提高系统运行的效率

cache.php 代码如下:

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的最后更新时间
            php教程];
            //如果更新时间超出更新间隔时间则删除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文件
            php教程($file, w > $fp = @fopen($file, w);
            if (php教程)) {
                echo "模板cache写入失败";
                exit;
            }
            @fclose($fp);
            //如果设置了缓存更新间隔时间 _recachetime_
            if (_recachetime_ + 0 > 0) {
                //更新当前页cache的最后更新时间
                $file = _cachepath_ . "/" . $this->cachefilevar;
                php教程);
                if (php教程())) {
                    echo "cache目录无法写入";
                    exit;
                }
                @fclose($fp);
            }
        }
    }
}
?>

 

使用过程:

php代码

<?php
define("_cachepath_", "./cache/");
define("_cacheenable_", "1");
define("_recachetime_", "43200");
include (cache . php);
$cache = new cache();
if ($cache->check()) {
    $template = $cache->read();
} else {
    ob_start();
    ob_implicit_flush(0);
?>

                                  页面内容。。。。  

<?php
    $template = ob_get_contents();
    $cache->write($template);
}
?>


本文链接:http://www.phprm.com/frame/php1005189.html

收藏随意^^请保留教程地址.

标签:none

发表留言