(实用篇)PHP缓存类完整实例
发布时间:2021-07-03 22:54:51作者:顺晟科技点击:
本文完整描述了一个简洁实用的服务器端编程语言(专业超文本预处理器的缩写)缓存类,可用来检查缓存文件是否在设置更新时间之内、清除缓存文件、根据当前动态文件生成缓存文件名、连续创建目录、缓存文件输出静态等功能。对于采用服务器端编程语言(专业超文本预处理器的缩写)开发羧甲基淀粉钠系统来说,离不开对缓存的处理,合理利用好缓存可有效的提高程序执行效率。
服务器端编程语言(专业超文本预处理器的缩写)缓存类文件完整代码如下:
/*
* 缓存类躲藏
*/
类缓存{
//缓存目录
var $cacheRoot=' ./cache/';
//缓存更新时间秒数,0为不缓存
var $ cacheLimitTime=0;
//缓存文件名
var $ cacheFileName=
//缓存扩展名
var $ cacheFileExt=' php
/*
* 构造函数
* int $cacheLimitTime缓存更新时间
*/
函数缓存($cacheLimitTime ) {
if(intval($cacheLimitTime))
$ this-cacheLimitTime=$ cacheLimitTime;
$ this-cache filename=$ this-Getcache filename();
ob _ start();
}
/*
* 检查缓存文件是否在设置更新时间之内
* 返回:如果在更新时间之内则返回文件内容,反之则返回失败
*/
函数cacheCheck(){
if(file _ exists($ this-cache filename)){
$ CTime=$ this-GetFileCreateTime($ this-缓存文件名);
if($ CTime $ this-cacheLimittime()){
echo file _ get _ contents($ this-cache filename);
ob _ end _ flush();
退出;
}
}
返回错误的
}
/*
* 缓存文件或者输出静态
*字符串$静态文件名静态文件名(含相对路径)
*/
函数缓存($ StatiFileName=' '){
if($this-cacheFileName ) {
$ cacheContent=ob _ get _ contents();
ob _ end _ flush();
if($staticFileName ) {
$this-saveFile($staticFileName,$ cacheContent);
}
if($this-cacheLimitTime)
$ this-保存文件($ this-缓存文件名,$缓存内容);
}
}
/*
* 清除缓存文件
*字符串$fileName指定文件名(含函数)或者全部(全部)
* 返回:清除成功返回没错,反之返回错误的
*/
函数clearCache($fileName='all' ) {
if($fileName!='all' ) {
$fileName=$this-cacheRoot .str topol(MD5($ FIlename)).'.'。$ this-cacheFileExt;
if(file_exists($fileName ) ) {
return @ unlink($ FIlename);
}else返回错误的
}
if (is_dir($this-cacheRoot ) ) {
if($ dir=@ opendir($ this-cacheRoot)){
while ($file=@readdir($dir ) ) {
$ check=is _ dir($ file);
if(!$支票)
@unlink($this-cacheRoot .$ file);
}
@ closedir($ dir);
返回真实的
}else{
返回错误的
}
}else{
返回错误的
}
}
/*根据当前动态文件生成缓存文件名*/
函数getCacheFileName() {
返回$this-cacheRoot .strtopher(MD5($ _ SERVER[' REQUEST _ URI ']).'.'。$ this-cacheFileExt;
}
/*
* 缓存文件建立时间
*字符串$fileName缓存文件名(含相对路径)
* 返回:文件生成时间秒数,文件不存在返回0
*/
函数getFileCreateTime($fileName ) {
if(!修剪($fileName))返回0;
if(file_exists($fileName ) ) {
返回int val(文件mtime($ FIlename));
}否则返回0;
}
/*
* 保存文件
*字符串$fileName文件名(含相对路径)
* string $text文件内容
* 返回:成功返回真实,失败返回错误的
*/
函数保存文件($fileName,$text) {
if(!$fileName ||!$text)返回错误的
if($ this-MakeDir(dir name($ FileName))){
if($fp=fopen($fileName,' w '){
if(@fwrite($fp,$text ) ) {
fc输($ FP);
返回真实的
}else {
fc输($ FP);
返回错误的
}
}
}
返回错误的
}
/*
* 连续建目录
*字符串$dir目录字符串
* int $模式权限数字
* 返回:顺利创建或者全部已建返回没错,其它方式返回错误的
*/
函数makeDir($dir,$mode='0777' ) {
if(!$dir)返回0;
$dir=str_replace('\ ','/',$ dir);
$ mdir=
foreach(分解('/',$dir)为$val ) {
$mdir .=$val .'/';
if($val==' . '|| $val==',' || trim($val )=')继续;
if(!file_exists($mdir ) ) {
if(!@mkdir($mdir,$mode )){
返回错误的
}
}
}
返回真实的
}
}
?
使用该缓存类的时候可将以上代码保存为cache.php,具体用法如下所示:
包括('缓存。PHP ');
$cache=新缓存(30);
$ cache-cache Check();
回声日期(' Y-m-d h : I :s ');
$ cache-cache();最后一句$ cache-cache();参数$ cache-cache(30)也应该用括号替换。放在代码的末尾。否则,报告一个错误
- 上一篇 : 智能手机机器人3354主导SEM电销变化
- 下一篇 : 网站添加https后 如何避免降低权限?