一个简洁实用的php缓存类完整实例,简洁实用php缓存本文完整描述了一个简洁实用的php缓存类,可用来检查缓存文件是否在设置更新时间之内、清除缓存文件、根据当前动态文件生成缓存文件名、连续创建目录、缓存文件输出静态等功能。对于采用php开发cms系统来说,离不开对缓存的处理,合理利用好缓存可有效的提高程序执行效率。
php缓存类文件完整代码如下:
cachelimittime = $cachelimittime; $this->cachefilename = $this->getcachefilename(); ob_start();} /* * 检查缓存文件是否在设置更新时间之内 * 返回:如果在更新时间之内则返回文件内容,反之则返回失败 */function cachecheck(){ if( file_exists( $this->cachefilename ) ) { $ctime = $this->getfilecreatetime( $this->cachefilename ); if( $ctime + $this->cachelimittime > time() ) { echo file_get_contents( $this->cachefilename ); ob_end_flush(); exit; } } return false;}/* * 缓存文件或者输出静态 * string $staticfilename 静态文件名(含相对路径) */function caching( $staticfilename = ){ if( $this->cachefilename ) { $cachecontent = ob_get_contents(); ob_end_flush(); if( $staticfilename ) { $this->savefile( $staticfilename, $cachecontent ); } if( $this->cachelimittime ) $this->savefile( $this->cachefilename, $cachecontent ); }} /* * 清除缓存文件 * string $filename 指定文件名(含函数)或者all(全部) * 返回:清除成功返回true,反之返回false */function clearcache( $filename = all ) { if( $filename != all ) { $filename = $this->cacheroot . strtoupper(md5($filename))...$this->cachefileext; if( file_exists( $filename ) ) { return @unlink( $filename ); }else return false; } if ( is_dir( $this->cacheroot ) ) { if ( $dir = @opendir( $this->cacheroot ) ) { while ( $file = @readdir( $dir ) ) { $check = is_dir( $file ); if ( !$check ) @unlink( $this->cacheroot . $file ); } @closedir( $dir ); return true; }else{ return false; } }else{ return false; }}/*根据当前动态文件生成缓存文件名*/function getcachefilename() { return $this->cacheroot . strtoupper(md5($_server[request_uri]))...$this->cachefileext;}/* * 缓存文件建立时间 * string $filename 缓存文件名(含相对路径) * 返回:文件生成时间秒数,文件不存在返回0 */function getfilecreatetime( $filename ) { if( ! trim($filename) ) return 0; if( file_exists( $filename ) ) { return intval(filemtime( $filename )); }else return 0;} /* * 保存文件 * string $filename 文件名(含相对路径) * string $text 文件内容 * 返回:成功返回ture,失败返回false */function savefile($filename, $text) { if( ! $filename || ! $text ) return false; if( $this->makedir( dirname( $filename ) ) ) { if( $fp = fopen( $filename, w ) ) { if( @fwrite( $fp, $text ) ) { fclose($fp); return true; }else { fclose($fp); return false; } } } return false;}/* * 连续建目录 * string $dir 目录字符串 * int $mode 权限数字 * 返回:顺利创建或者全部已建返回true,其它方式返回false */function makedir( $dir, $mode = 0777 ) { if( ! $dir ) return 0; $dir = str_replace( \\, /, $dir ); $mdir = ; foreach( explode( /, $dir ) as $val ) { $mdir .= $val./; if( $val == .. || $val == . || trim( $val ) == ) continue; if( ! file_exists( $mdir ) ) { if(!@mkdir( $mdir, $mode )){ return false; } } } return true;}}?>
使用该缓存类的时候可将以上代码保存为cache.php,具体用法如下所示:
include( cache.php );$cache = new cache(30);$cache->cachecheck();echo date(y-m-d h:i:s);$cache->caching();
php 数据缓存
一种是对 页面结果的缓存 应用服务器级别的 软件如 squid
一种是 内存级别的 一般是对 php 频繁调用的并且如果每次查询会消耗大量资源的数据 软件有 memcached
一种是 对php 程序进行优化编码的缓存 如 apache 里面的 apc, eaccelerator, xcache 等
还有一种就是文件缓存 这种一般是 用php自己实现的 没什么可说的.
看你的具体需求是怎样的了..有疑问 请联系 1465663870
想做个 网站 ,一段php编程代码,php的mysql缓存怎实现? 最好举个例子
//以下是缓存类:
cachelimittime = $cachelimittime;
$this->cachefilename = $this->getcachefilename();
//echo $this->cachefilename;
ob_start();
}
/*
* 检查缓存文件是否在设置更新时间之内
* 返回:如果在更新时间之内则返回文件内容,反之则返回失败
*/
function cachecheck(){
if( file_exists( $this->cachefilename ) ) {
$ctime = $this->getfilecreatetime( $this->cachefilename );
if( $ctime + $this->cachelimittime > time() ) {
echo file_get_contents( $this->cachefilename );
ob_end_flush();
exit;
}
}
return false;
}
/*
* 缓存文件或者输出静态
* string $staticfilename 静态文件名(含相对路径)
*/
function caching( $staticfilename = ){
if( $this->cachefilename ) {
$cachecontent = ob_get_contents();
//echo $cachecontent;
ob_end_flush();
if( $staticfilename ) {
$this->savefile( $staticfilename, $cachecontent );
}
if( $this->cachelimittime )
$this->savefile( $this->cachefilename, $cachecontent );
}
}
/*
......余下全文>>
http://www.bkjia.com/phpjc/851353.htmlwww.bkjia.comtruehttp://www.bkjia.com/phpjc/851353.htmltecharticle一个简洁实用的php缓存类完整实例,简洁实用php缓存 本文完整描述了一个简洁实用的php缓存类,可用来检查缓存文件是否在设置更新时间之...
