缓存在实际使用当中应用很广泛,可以减轻对服务器
数据库
的访问,提高访问速度.
例:
<?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文件
$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_","./l/");
define("_CacheTime_","180");
include("index.php");
$cache=new cache;
$cache->cache();
if($cache-> check()){
$template=$cache->read();
}else{
ob_start();
ob_implicit_flush(0);
}
?>
<?php
include("index.php");
$cache=new cache;
$template=ob_get_contents();
$cache->write($template);
?>
分享到:
相关推荐
PHP缓存技术是提高PHP应用性能的重要手段。它通过减少服务器的计算量、数据库查询次数以及网络传输数据量,来实现提高响应速度和降低服务器负载的目的。下面将详细解析php缓存技术涉及的关键知识点。 一、全页面...
### 详解PHP缓存技术在网站开发中的应用 在当今高度依赖互联网的时代,网站的响应速度和用户体验成为了吸引用户的关键因素。随着网站流量的增加,数据库的查询压力也随之增大,这不仅影响了网站的性能,还可能导致...
总结,PHP缓存技术是提高网站性能的重要手段,理解并合理运用各种缓存类型和策略,能够有效地提升应用的响应速度和用户体验。在实际开发中,应根据项目需求和资源状况选择合适的缓存方案,并不断优化和调整,以达到...
### PHP缓存技术详解 #### 引言 随着互联网技术的迅速发展,用户对网站响应速度的要求越来越高。作为一款流行的Web开发语言,PHP凭借其强大的功能和灵活性在网站建设中占据了重要地位。然而,在处理大量数据时,...
### PHP缓存技术详解 在IT领域,尤其是Web开发中,**PHP缓存技术**扮演着至关重要的角色,尤其在大型网站中,它能够显著提升性能,减轻服务器负担,优化用户体验。本文将深入探讨PHP缓存的核心概念、常用技术及其...
PHP缓存技术是提高网站性能的关键手段,尤其是在处理大量数据和高并发访问时。本文将对几种常见的PHP缓存技术进行详细解释。 1. 数据缓存: 数据缓存主要针对数据库查询结果,目的是减少对数据库的直接访问,降低...
从原理到场景系统讲解PHP缓存技术系列课程.txt
本篇文章将深入探讨PHP中的缓存技术,特别是关于`memcache`函数的使用。 `Memcache`是一种分布式内存对象缓存系统,它能够存储数据到内存中,从而加快数据的读取速度,减轻数据库的压力。在PHP中,`memcache`扩展...
有些信息比方经常不变的,但是还是能变的信息放在缓存中以加快显示速度,这是很有价值的,所谓的缓存,通俗的理解就是一些保存在服务器端的共用信 息.它是于服务器同生死的,我们在保存缓存的时候可以指定下次更新的时间...
PHP缓存技术是提高Web应用程序性能的关键策略之一。缓存技术的基本原理是将频繁访问的数据存储在高速存储中,以减少对慢速存储(如硬盘)的依赖,从而提高响应速度。在PHP开发中,缓存可以应用于多个层面,包括数据...
在现代的Web开发中,PHP缓存技术扮演着至关重要的角色。使用PHP缓存技术可以显著减少服务器处理请求的负担,提升网站的响应速度和用户体验。缓存技术通过将频繁访问的数据或页面存储在服务器上,减少对数据库的查询...
然而,随着互联网应用的复杂性和访问量的增加,单纯依赖数据库...对于源码和工具的探索,可以通过阅读`cacherphpclass-2001-10-31`这个文件,了解特定的PHP缓存类库或实现,这将有助于加深对PHP缓存技术的理解和应用。
PHP开发学习,PHP高级开发知识
根据给定的信息,我们可以深入探讨 PHP 缓存技术以及如何使用抽象类来设计缓存系统。此外,还将探讨 APC 缓存的具体实现。 ### 一、缓存抽象类概述 在给定的代码中,定义了一个名为 `Cache_Abstract` 的抽象类。这...
在构建高性能的Web应用时,PHP缓存与静态化扮演着至关重要的角色。它们能够显著提升网站的响应速度,减少服务器资源的消耗,尤其对于高流量的动态网站来说更是如此。下面将详细探讨这两个概念以及如何在PHP中实现...
它通过存储经常访问或计算结果的数据,避免重复的计算和减少数据库查询,从而显著提升系统效率。... ...其中,文件缓存是最基础的形式,它将数据存储在...理解并熟练掌握PHP缓存技术,对于提升PHP应用的效率具有重大意义。