php文件缓存代码,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的最后更新时间

cachefilevar);$var=$var[0">$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文件

$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代码

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

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

相关文章

[架构] 分布式和集群的区别

一次在群里面看到群友们在讨论这个的区别,看了他们发表的言论,觉得很有道理,很通俗易懂,就当做学习的笔记记录在这里: 用两个例子看清楚分布式和集群的区别: 例子1: 如果一个任务由10个子任务组…

JQuery.lazyload 图片延迟加载

1.引入 jquery.lazyload.js 2. 延时加载的方式 <script type"text/javascript">   $(function() {     $("img").lazyload({     effect : "fadeIn"    });   });   </script> 3. 把阀值设置成200 意思就是当图…

如何把UIView转成UIImage,解决模糊失真问题

最近工作中&#xff0c;遇到一个需求&#xff0c;需要把一个UIView对象转成UIImage对象显示。经过网络搜索&#xff0c;找到如下答案&#xff1a; ?12345678-(UIImage*)convertViewToImage:(UIView*)v{CGSize s v.bounds.size;UIGraphicsBeginImageContext(s);[v.layer rende…

php数据趋势曲线,数据曲线图怎么做

数据曲线图怎么做&#xff1f;1、在电脑桌面上&#xff0c;新建一个excel文件(操作过程即为点击右键&#xff0c;在选项中选择“新建”选项&#xff0c;然后再选择“excel文件”&#xff0c;即可成功新建excel文件了)2、双击将新建的excel文件打开&#xff0c;输入你需要统计制…

ceph 分布式存储安装

[rootlocalhost ~]# rm -rf /etc/yum.repos.d/*.repo 下载阿里云的base源 [rootlocalhost ~]# wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo [rootlocalhost ~]# wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/r…

基本技能

1、分析Android游戏积分机制、付费机制、存档机制2、游戏破解嵌入特定页面&#xff0c;页面涵盖logo&#xff0c;url外链等基础内容3、破解游戏呈现无限金币、免费道具、无敌等表现方式1、精通汇编语言、Java或C/C语言&#xff0c;对逆向工程有浓厚兴趣2、有代表作品3、 熟练掌…

STM32学习之路-SysTick的应用(时间延迟)

开发板&#xff1a;奋斗V5 好~ 菜B要来搞实验了.. 前面已经说了SysTick的工作原理什么的了,这里就不说了.. 先来做第一个实验&#xff1a; 盗自奋斗的样例,嘿嘿, 用SysTick产生1ms的基准时间,产生中断,每秒闪烁一次(LED1 V6) &#xff08;1&#xff09;外围时钟初始化&#xf…

centos akonadi mysql,MySQL数据库之在CentOS7上安装MySQL5.7

本文主要向大家介绍了MySQL数据库之在CentOS7上安装MySQL5.7 &#xff0c;通过具体的内容向大家展现&#xff0c;希望对大家学习MySQL数据库有所帮助。获取RPM包# wget https://dev.mysql.com/get/mysql57-community-release-el7-11.noarch.rpm列出RPM包里都有哪些文件# rpm -q…

usaco-crypt1-pass

这个想了半天&#xff0c;终于过了&#xff1a; /* ID: qq104801 LANG: C TASK: crypt1 */ #include <stdio.h> #include <stdlib.h> #include <string.h> #include <assert.h>void debug_dummy() {return; }int n; int d[10];int numlen(int x) { …

凡事预则立(Beta)

听说——凡事预则立 吸取之前alpha冲刺的经验教训&#xff0c;也为了这次的beta冲刺可以更好更顺利地进行&#xff0c;更是为了迎接我们的新成员玮诗。我们开了一次组内会议&#xff0c;进行beta冲刺的规划。 上一张我们的合照&#xff1a; 具体会议议程如下&#xff1a; 1、讨…

tomcat 指定的服务未安装(总结验证)

如果你的tomcat是解压版的&#xff0c;解压版的话要环境配置一、jdk环境变量一定要配置对&#xff0c;如果配置不对也会出现此提示 1&#xff0c;新建变量名&#xff1a;JAVA_HOME&#xff0c;变量值&#xff1a;C:\Program Files\Java\jdk1.7.02&#xff0c;打开PATH&#xff…

java url 授权,Spring MVC框架 - 基本认证之URL 授权认证

[导读]为控制器添加注解是非常简单的&#xff0c;但这往往并不是最可行的方案。有时候&#xff0c;我们会想要完全控制授权功能。为控制器添加注解是非常简单的,但这往往并不是最可行的方案。有时候,我们会想要完全控制授权功能。移除Secured 注解,我们将会采用一种更好的方案。…

什么原因成就了一位优秀的程序员?(转)

这些年我曾和很多程序员一起工作&#xff0c;他们之中的一些人非常厉害&#xff0c;而另一些人显得平庸。不久前因为和一些技术非常熟练的程序员工作感觉很愉快&#xff0c;我花了一些时间在考虑我佩服他们什么呢&#xff1f;什么原因让优秀的程序员那么优秀&#xff0c;糟糕的…

用Vue.js开发一个电影App的前端界面

我们要构建一个什么样的App&#xff1f; 我们大多数人使用在线流媒体服务&#xff08;如Netflix&#xff09;观看我们最喜欢的电影或者节目。这篇文章将重点介绍如何通过使用vue.js 2 建立一个类似风格的电影流媒体WEB交互界面&#xff08;见上图&#xff09;。 最终的产品可以…

eclipse 函数折叠展开

为什么80%的码农都做不了架构师&#xff1f;>>> 一、eclipse 代码块折叠显示 核查是否开启折叠功能全局folding(window->preference->Gerneral->Editor-Structured Text)右侧Appearance 勾选Enable folding检测对应源编辑&#xff08;java/javaScript&…

mysql 引擎 校对,MySQL 字符集和校对

字符集是指一种从二进制编码到某类字符符号的映射&#xff0c;校对是一组用于某个字符集的排序规则。每一类编码字符都有其对应的字符集和校对规则MySQL 如何使用字符集每种字符集都可能有多种校对规则&#xff0c;并且都有一个默认的校对规则。每个校对规则都是针对某个特定的…

CSS+HTML+JQuery简单菜单

1. [代码]style <style type"text/css"> body,ul,li,a{ margin:0; padding:0 } ul,li{ list-style-type:none } .menu{ width:270px; height:30px; line-height:30px; background:…

【研究】Metasploit自动攻击模块

环境&#xff1a;kali-linux-2017.3-vm-amd64 一、安装postgresql数据库 apt-get install postgresql apt-get install rubygems libpq-dev apt-get install libreadline-dev apt-get install libssl-dev apt-get install libpq5 apt-get install ruby-dev apt-get install lib…

用JS获取地址栏参数的方法

用JS获取地址栏参数的方法&#xff08;超级简单&#xff09;方法一&#xff1a;采用正则表达式获取地址栏参数&#xff1a;&#xff08; 强烈推荐&#xff0c;既实用又方便&#xff01;&#xff09; function GetQueryString(name){var reg new RegExp("(^|&)" …

php curl_init不能用,curl_init()函数不起作用

curl_init()函数不起作用嗨&#xff0c;我在POST请求中尝试PHP Post Request&#xff0c;认为它可能对我有用&#xff0c;我的代码如下所示$sub_req_url "http://localhost/index1.php";$ch curl_init($sub_req_url);$encoded ;// include GET as well as POST va…