php文件缓存实例代码

php教程文件缓存实例代码
缓存在实际使用当中应用很广泛,可以减轻对服务器数据库教程的访问,提高运行速度。目前很多cms内容管理系统中频繁使用缓存机制来提高系统运行的效率
cache.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的最后更新时间 
                $var=@file(_cachepath_."/".$this->cachefilevar);$var=$var[0]; 
                //如果更新时间超出更新间隔时间则删除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文件 
                fopen($file,'w'">$fp=@fopen($file,'w'); 
                if (!@fputs($fp,$output)) {echo "模板cache写入失败";exit;} 
                @fclose($fp); 
                //如果设置了缓存更新间隔时间 _recachetime_ 
                if (_recachetime_+0>0) { 
                        //更新当前页cache的最后更新时间 
                        $file=_cachepath_."/".$this->cachefilevar; 
                        $fp=@fopen($file,'w'); 
                        if (!@fwrite($fp,time())) {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); 
        } 
        ?> 

时间: 2024-10-25 21:08:42

php文件缓存实例代码的相关文章

asp.net StreamReader 创建文件的实例代码

这篇文章介绍了asp.net StreamReader 创建文件的实例代码,有需要的朋友可以参考一下   复制代码 代码如下: using System; using System.Collections; using System.ComponentModel; using System.Data; using System.Drawing; using System.Web; using System.Web.SessionState; using System.Web.UI; using

ThinkPHP文件缓存类代码分享

  ThinkPHP文件缓存类代码分享         取自ThinkPHP的文件缓存类代码,这里就不多废话了,小伙伴们自己看注释吧. ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63

php实现当前页面点击下载文件的实例代码_php实例

php控制器中代码 public function downFile($path = ''){ if(!$path) header("Location: /"); download($path); } download文件下载函数代码 function download($file_url,$new_name=''){ if(!isset($file_url)||trim($file_url)==''){ echo '500'; } if(!file_exists($file_url)

asp.net c写文件函数实例代码

asp教程.net c写文件函数实例代码 streamwriter 和 streamreader 向流写入字符并从流读取字符.下面的代码示例打开 log.txt 文件(如果文件不存在则创建文件)以进行输入,并将信息附加到文件尾.然后将文件的内容写入标准输出,以便显示出来. [c#] using system; using system.io; class dirappend {   public static void main(string[] args)   {   streamwriter

php实现当前页面点击下载文件的实例代码

php控制器中代码 public function downFile($path = ''){ if(!$path) header("Location: /"); download($path); } download文件下载函数代码 function download($file_url,$new_name=''){ if(!isset($file_url)||trim($file_url)==''){ echo '500'; } if(!file_exists($file_url)

HttpClient通过Post上传文件的实例代码

在之前一段的项目中,使用Java模仿Http Post方式发送参数以及文件,单纯的传递参数或者文件可以使用URLConnection进行相应的处理. 但是项目中涉及到既要传递普通参数,也要传递多个文件(不是单纯的传递XML文件).在网上寻找之后,发现是使用HttClient来进行响应的操作,起初尝试多次依然不能传递参数和传递文件,后来发现时因为当使用HttpClient时,不能使用request.getParameter()对普通参数进行获取,而要在服务器端使用Upload来进行操作. Http

用PHP读取超大文件的实例代码

去年年底的各种网站帐号信息的数据库泄漏,很是给力啊,趁机也下载了几个数据库,准备学学数据分析家来分析一下这些帐号信息.虽然这些数据信息都已经被"整理"过的,不过自己拿来学习也挺有用的,毕竟有这么大的数据量. 数据量大带来的问题就是单个文件很大,能够打开这个文件相当不容易,记事本就不要指望了,果断死机.用MSSQL的客户端也打不开这么大的SQL文件,直接报内存不足,原因据说是MSSQL在读取数据的时候,是一次性地将读取到的数据放在内存中,如果数据量过大,而内存不足,则会直接导致系统瘫掉.

用PHP读取超大文件的实例代码_php实例

去年年底的各种网站帐号信息的数据库泄漏,很是给力啊,趁机也下载了几个数据库,准备学学数据分析家来分析一下这些帐号信息.虽然这些数据信息都已经被"整理"过的,不过自己拿来学习也挺有用的,毕竟有这么大的数据量. 数据量大带来的问题就是单个文件很大,能够打开这个文件相当不容易,记事本就不要指望了,果断死机.用MSSQL的客户端也打不开这么大的SQL文件,直接报内存不足,原因据说是MSSQL在读取数据的时候,是一次性地将读取到的数据放在内存中,如果数据量过大,而内存不足,则会直接导致系统瘫掉.

php opendir()列出目录下所有文件的实例代码

php opendir()函数用于打开目录,通常与readdir()和closedir()函数一起用来读取目录下所有文件(即遍历目录),本文章向大家介绍php使用opendir()函数列出目录下所有文件的实例. 实例一: 使用opendir()列出目录下所有文件 <?php $dr = @opendir('/tmp/'); if(!$dr) { echo "Error opening the /tmp/ directory!<BR>"; exit; } while((