网站适用的PHP缓存类

news/2024/5/10 4:52:47/文章来源:https://blog.csdn.net/weixin_30566149/article/details/99642440

缓存在实际使用当中应用很广泛,可以减轻对服务器数据库的访问,提高运行速度。目前很多CMS内容管理系统中频繁使用缓存机制来提高系统运行的效率。下面是一个写得不错的缓存类,可以参考下缓存的机制与写法。

cache.php 代码如下:


 
    1. <?    
    2. /*  
    3. 用户需要事先定义的常量:  
    4. _CachePath_        模板缓存路径  
    5. _CacheEnable_        自动缓存机制是否开启,未定义或为空,表示关闭自动缓存机制  
    6. _ReCacheTime_        自动重新缓存间隔时间,单位为秒,未定义或为空,表示关闭自动重新缓存  
    7. */    
    8.     
    9. class cache   
    10. {  
    11.     var $cachefile;    
    12.     var $cachefilevar;    
    13.     
    14.     function cache()   
    15.     {    
    16.         //生成当前页的Cache组文件名 $this->cachefilevar 及文件名 $this->cachefile    
    17.         //动态页的参数不同对应的Cache文件也不同,但是每一个动态页的所有Cache文件都有相同的文件名,只是扩展名不同    
    18.         $s=array(".","/");$r=array("_","");    
    19.         $this->cachefilevar=str_replace($s,$r,$_SERVER["SCRIPT_NAME"])."_".$_GET[_ActionVar_];    
    20.         $this->cachefile=$this->cachefilevar.".".md5($_SERVER["REQUEST_URI"]);    
    21.     }    
    22.     
    23.     //删除当前页/模块的缓存    
    24.     function delete()   
    25.     {    
    26.         //删除当前页的缓存    
    27.         $d = dir(_CachePath_);    
    28.         $strlen=strlen($this->cachefilevar);    
    29.         //返回当前页的所有太原264医院Cache文件组    
    30.         while (false !== ($entry = $d->read()))   
    31.         {    
    32.             if (substr($entry,0,$strlen)==$this->cachefilevar)   
    33.             {    
    34.                 if (!unlink(_CachePath_."/".$entry)) {echo "Cache目录无法写入";exit;}    
    35.             }    
    36.         }    
    37.     }    
    38.     
    39.     //判断是否已Cache过,以及是否需要Cache    
    40.     function check()   
    41.     {    
    42.         //如果设置了缓存更新间隔时间 _ReCacheTime_    
    43.         if (_ReCacheTime_+0>0)  
    44.         {    
    45.             //返回当前页Cache的最后更新时间    
    46.             $var=@file(_CachePath_."/".$this->cachefilevar);$var=$var[0];    
    47.             //如果更新时间超出更新间隔时间则删除Cache文件    
    48.             if (time()-$var>_ReCacheTime_)   
    49.             {    
    50.                 $this->delete();$ischage=true;    
    51.             }    
    52.         }    
    53.         //返回当前页的Cache    
    54.         $file=_CachePath_."/".$this->cachefile;    
    55.         //判断当前页Cache是否存在 且 Cache功能是否开启    
    56.         return (file_exists($fileand _CacheEnable_ and !$ischange);    
    57.     }    
    58.     
    59.     //读取Cache    
    60.     function read()   
    61.     {    
    62.         //返回当前页的Cache    
    63.         $file=_CachePath_."/".$this->cachefile;    
    64.         //读取Cache文件的内容    
    65.         if (_CacheEnable_) return readfile($file);    
    66.         else return false;    
    67.     }    
    68.     
    69.     //生成Cache    
    70.     function write($output)   
    71.     {    
    72.         //返回当前页的Cache    
    73.         $file=_CachePath_."/".$this->cachefile;    
    74.         //如果Cache功能开启    
    75.         if (_CacheEnable_)   
    76.         {    
    77.             //把输出的内容写入Cache文件    
    78.             $fp=@fopen($file,'w');    
    79.             if (!@fputs($fp,$output)) {echo "模板Cache写入失败";exit;}    
    80.             @fclose($fp);    
    81.             //如果设置了缓存更新间隔时间 _ReCacheTime_    
    82.             if (_ReCacheTime_+0>0)   
    83.             {    
    84.                 //更新当前页Cache的最后更新时间    
    85.                 $file=_CachePath_."/".$this->cachefilevar;    
    86.                 $fp=@fopen($file,'w');    
    87.                 if (!@fwrite($fp,time())) {echo "Cache目录无法写入";exit;}    
    88.                 @fclose($fp);    
    89.             }    
    90.         }    
    91.     }    
    92. }    
    93. ?>  


 

 

类的使用:

[php] view plaincopy在CODE上查看代码片派生到我的代码片
 
    1. <?php    
    2.     define("_CachePath_","./cache/");    
    3.     define("_CacheEnable_","1");    
    4.     define("_ReCacheTime_","43200");    
    5.     include('cache.php');    
    6.     $cache=new cache();    
    7.     if ($cache->check())   
    8.     {    
    9.         $template=$cache->read();    
    10.     }  
    11.     else   
    12.     {    
    13.         ob_start();    
    14.         ob_implicit_flush(0);    
    15. ?>    
    16.     页面内容。。。。    
    17. <?php    
    18.         $template = ob_get_contents();    
    19.         $cache->write($template);    
    20.     }    
    21. ?>    

转载于:https://www.cnblogs.com/hengyi123/p/3671428.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_722905.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

php 随机在文章中添加锚文本_锚文本链接怎么写,锚文本链接对于seo的作用

锚文本建设是网站权威性建设的一个重要方面&#xff0c;什么是锚文本&#xff0c;如何做锚文本链接&#xff0c;是SEO的必备技能。对小网站来说&#xff0c;用这种方法来做目标关键词排名&#xff0c;是非常必要的。笔者认为&#xff0c;seo并不复杂&#xff0c;掌握底层seo核心…

高性能网站架构之负载均衡 Nginx+tomcat+redis实现tomcat集群

上一篇文章给大家讲了Nginx的安装&#xff0c;那么这篇文章为大家讲一下NginxTomcat实现负载均衡。 先说说为什么要用ngnix 做负载均衡&#xff0c;其实做负载均衡的最出名的莫过于F5了&#xff0c;F5是在硬件设施&#xff0c;动辄几万&#xff0c;几十万&#xff0c;几百万不等…

vs新建网站选项只有wcf服务器,在 Windows 窗体中创建一个简单的 WCF 服务 - Visual Studio (Windows) | Microsoft Docs...

演练&#xff1a;在 Windows 窗体中创建简单 WCF 服务11/04/2016本文内容本演练演示如何创建一个简单的 Windows Communication Foundation (WCF) 服务&#xff0c;对其进行测试&#xff0c;然后从 Windows 窗体应用程序访问该服务。备注本文中的某些 Visual Studio 用户界面元…

大型网站的负载均衡器、db proxy和db

大型网站的负载均衡器、db proxy和db 本文主要分析网站后台架构中的负载均衡器&#xff0c;企业常用的硬件负载均衡器软件负载均衡器、数据库代理服务器和数据库。 1.1 负载均衡 在大型网站部署中&#xff0c;负载均衡至少有三层部署。第一层为web server或者缓存代理之上的负载…

html5 bbs网站,分享一个优秀HTML5网站的开发思路

由于网站开发的工作原因&#xff0c;最近一直在学习HTML5语言。没事的时候&#xff0c;就喜欢到处搜罗优秀的网站来看&#xff0c;甚至调出它的源码来研究。几个月来&#xff0c;个人学到了很多&#xff0c;在这里也想和大家分享一下自己研究过的网站&#xff0c;并且会给大家分…

一个网管8年来运营网站的辛酸经历

一直以来&#xff0c;都想写点什么&#xff0c;但思绪有点混乱&#xff0c;不知从何下笔。这要源于2015年进入股市惨败直至17年投资生意失败&#xff0c;三年时间耗费了所有积蓄&#xff0c;还倒欠了一些外债&#xff0c;所以无心打理其他事情&#xff0c;今天整理了一下心情&a…

html制作一张学生信息表格,学生个人网页制作代码,制作一个很简单网页表单代码 _ 惠州SEO...

进入下一页吗var }var url\"next.html\";//正确后转到网址function go}if(o.}document.location.reload(url);}}请输入网址学生个人网页制作代码&#xff1a;将以上内容复制到记事本后学生个人网页制作代码&#xff0c;另存为\"xxx.html\"对回答的内容有问…

大型网站背后的高性能系统架构设计

2019独角兽企业重金招聘Python工程师标准>>> 1. 性能测试 1.1. 性能指标 网站性能测试的主要指标有&#xff1a; 响应时间 - 响应时间(RT)是指从客户端发一个请求开始计时&#xff0c;到客户端接收到从服务器端返回的响应结果结束所经历的时间&#xff0c;响应时间由…

有哪些网站是django开发的_商城网站建设的具体开发流程有哪些

商城网站建设可以改变一家企业的营销模式&#xff0c;一些传统的行业在做着线下产品的销售&#xff0c;而有了商城之后就可以做网上销售&#xff0c;不过商城网站的开发比普通网站开发的难度更大&#xff0c;所以大家一定要认真的去了解那么商城网站建设的具体开发流程有哪些&a…

Java web speach api_HTML5 Web Speech API,让网站更有趣

Web API 变得越来越丰富&#xff0c;其中一个值得注意的是Web Speech API。传统的网站只能“说”&#xff0c;这个API的出现&#xff0c;让网站能“倾听”用户。这个功能已经开放了一系列的用法&#xff0c;非常棒。在这篇文章中&#xff0c;我们将看一下这项技术和建议的用法&…

seo模拟点击软件_SEO点击软件是否对网站排名有帮助

SEO点击软件是否对网站排名有帮助我们在搜索引擎搜索东西时候都是以某个关键词进行搜索&#xff0c;然后再更具该关键词的长尾词进行详细查找。在搜索时候我们会留意网站的展现数量&#xff0c;如某某网站展现量多&#xff0c;某某网站展现少&#xff0c;这些都会在我们潜意识里…

php页面怎么改造mip,代码适配的网站如何进行mip改造

最近一个小站需要进行mip改造&#xff0c;网站是代码适配的网站。就是电脑访问返回电脑端的页面&#xff0c;手机端访问返回手机端的页面。网站的url是相同的。改造后在百度提供的在线验证工具中进行了测试&#xff0c;全部通过测试。然后在站长后台进行了提交。提交后大概等了…

Python爬虫实战之爬取网站全部图片(二)

通过python 来爬取网站内所有的图片到本地 第三篇是动态获取参数构造图片地址实现下载图片 传送门&#xff1a;https://blog.csdn.net/qq_33958297/article/details/82316019 这篇文章的目的是因为上一个文章里的地址已经无法访问了 考虑到可能有的新手没有办法去实验&…

如何在微软Azure上搭建个人博客网站

手动配置服务器对很多读者来说可能并不是一件容易的事。好在在Azure中&#xff0c;微软已经就搭建WordPress个人博客给出了一站式的解决方案&#xff0c;对于零基础读者来说&#xff0c;在Azure上搭建WordPress即意味着你无需经历繁琐的服务器配置过程。本期的教程&#xff0c;…

CentOS7搭建DVWA网站

Lamp架构搭建DVWA 搭建Lamp请看&#xff1a;https://blog.csdn.net/qq_41709494/article/details/89430834 1.下载DVWA地址&#xff1a;http://www.dvwa.co.uk/ 2. 安装Lamp的所有包 [rootlocalhost ~]# yum install php php-mysql php-gd httpd mariadb mariadb-server -…

记一次网站优化---图片压缩与移动端画面缩放问题

一、背景 前段时间被人吐槽自己负责的官网访问慢 其实自己平时访问的时候是有意识到的&#xff0c;但是没有特别放在心上 在工作的列表中优先级排的不高 最近空闲了下来&#xff0c;使用性能分析工具审计了一遍网站的各项指标 发现了比较严重的问题 二、问题 1、页面内容空白时…

可以发外链的网站_外链是什么意思?发外链的技巧【经验分享.视频】

外链是什么意思&#xff1f;外链是指网站的外链&#xff0c;是指一个网站所拥有的站外推广链接。把自己的网址发布到别人的网站上&#xff0c;这样的链接叫做外链。&#xff08;可发文章的平台&#xff0c;如58同城、赶集网、百姓网、等外链平台&#xff09;比如我在百姓网发了…

插码统计点击次数_码迷SEO内参(15) 百度快排原理及百度第三代点击排名统计系统简析...

这是码迷SEO的第42篇原创今天讲百度第三代点击排名统计系统&#xff0c;顺带把百度快排深度原理也刨析一下。自从19年10月份以来&#xff0c;百度对快排打击丝毫没有手软的迹象&#xff0c;码迷发现凡是采集快排模式的网站至今无一幸免&#xff0c;70多天了也没有起色的现象。可…

php动态保存文件名_利用百度地图写个跑腿接单的网站菜鸟教程零基础php为主

忙了几天&#xff0c;终于闲下来了&#xff0c;接着上一篇写。上一篇说怎样在手机上搭建服务器&#xff0c;本篇写创建hello world&#xff0c;第一个页面。其实看过我上几篇教程的都知道大概怎样创建了&#xff0c;就是一页面法。一个主页面&#xff0c;其他页面用函数表示&am…

网站被挂了很多链接 源码里边看不到_网站优化的50个技巧

这次写的《网站优化50个技巧》是为了让那些没有时间深究SEO技术但又想一窥SEO真相的朋友们&#xff0c;希望看了这些你更懂SEO&#xff01;这些经验和盘托出&#xff0c;希望能够帮助到朋友们&#xff01;这些规则就像是交通指示灯一样&#xff0c;按照这些规则走的&#xff0c…