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代码
php文件缓存代码,php文件缓存实例代码相关推荐
- java代码实现文件扫描_JAVA文件扫描(递归)的实例代码
具体代码如下所示: import java.io.File; public class Scan { public static void main(String[] args) { String f ...
- java的多态代码例子_java 多态实例代码
多态是同一个行为具有多个不同表现形式或形态的能力.多态就是同一个接口,使用不同的实例而执行不同操作. 多态性是对象多种表现形式的体现,比如: 在现实中,我们按下F1键这个动作: 如果当前在Flash界 ...
- php注册登录代码初学,php 用户注册实例代码,适合初学者_PHP教程
php教程 用户注册实例代码,适合初学者 if($_POST[submit]){ checkusername($_POST[username]); if($_SESSION["code&qu ...
- python聊天程序程序代码_python聊天程序实例代码分享
代码简单,直接看代码吧: 代码如下: import socket import threading import re #import Tkinter def ser(): s=socket.sock ...
- python保存为mat文件_Python读取mat文件保存为pickle格式的实例代码
Python使用pickle模块储存对象操作 Python读取mat文件,并保存为pickle格式的方法 这两天在搞Theano,要把mat文件转成pickle格式载入Python. Matlab是把 ...
- 前端文件表单/ajax上传实例代码
表单上传文件 <!DOCTYPE html> <html lang="en"> <head><meta charset="UTF ...
- jq修改iframe html代码,jQuery控制iFrame(实例代码)
用jquery在IFRAME里取得父窗口的某个元素的值 只好用DOM方法与jquery方法结合的方式实现了 1.在父窗口中操作 选中IFRAME中的所有单选钮 $(window.frames[&quo ...
- php qq登陆网站实例代码,QQ登陆网站实例代码
现在这种第三方登录的应用很广泛也很方便.省得用户进行注册了.现在把QQ登录的方法和步骤记录一下,以备使用时方便. 第一步,到http://connect.qq.com/intro/login/这里去申 ...
- python堆排序算法代码_python堆排序算法实例代码
python 实现堆排序算法代码,需要的朋友可以参考下 代码如下:#!/usr/bin/python import sys def left_child(node): return node * 2 ...
- oracle数据库查询代码,ORACLE数据库查询表实例代码
一,查询表基本信息 select utc.column_name,utc.data_type,utc.data_length,utc.data_precision, utc.data_Scale,ut ...
最新文章
- C/C++各种数据类型转换汇总
- 吉大20春学期C语言程序设计作业二,吉大18春学期《C语言程序设计》在线作业二【答案】...
- 【Groovy】构建工具 ( 构建工具引入 | Gradle 构建工具作用 | 传统的依赖管理 )
- SPOJ 1812 LCS2 - Longest Common Substring II (后缀自动机)【两种做法】
- d3 v4 api transitions
- 团队博客 第三周 设计类图
- paip.DEVSUIT ADMIN 初次使用时出现两个LICENSE提醒
- MindMaster for Mac(亿图思维导图)
- IC面试数字电路基础
- 小米平板2装win10(附驱动)
- win7未能成功安装驱动服务器,ghost win7未能成功安装设备驱动程序怎么办解决方法...
- Win10下AutoCAD2014 +VS2010 + Object2014 安装与配置环境
- SigFox Vs. LoRa:技术和商业模式之间的比较
- 西达摩花魁咖啡豆名字来源
- 史上最全Java开发手册!!!阿里出版
- C++/JAVA 计算两篇文章的相似度
- 语音视频社交中回声消除技术是如何实现的
- Python 3 之 Chrom 截获的Headers转成dict格式
- 项目章程的主要内容#软考高级信息系统项目管理师/高项读书笔记#3
- 粤港澳大湾区第一届量子科技与产业应用研讨会在穗成功举办
热门文章
- 其他大神的配置 nginx 配置参考
- PHP 正则表达式分割 preg_split 与 split 函数
- 开发第一个spring boot应用
- 10 进制转 2 进制、16 进制
- 老码农:如何写出让自己满意的代码
- MYSQL进入客户端后切换服务器的简单做法试验
- netflix的准实验面临的主要挑战
- 559. N 叉树的最大深度
- 尼古拉斯 android_圣尼古拉斯和Alexa的访问
- select ...as_一起使用.select .map和.reduce方法可充分利用Ruby