本文目录一览:
php伪静态情况下实现的文件缓存实现代码
PHP静态文件生成方法:
ob_start(); //开启缓存
require_once('./templates/moban.php'); //导入模板文件(页面)
file_put_contents('index.html',ob_get_contents()); //生成静态文件index.html
php文件缓存类汇总
本文实例讲述了php的文件缓存类。分享给大家供大家参考。具体分析如下:
缓存类是我们开发应用中会常用使用到的功能,下面就来给大家整理几个php文件缓存类了,各个文件缓存类写法不同,但在性能上会有区别,有兴趣测试的朋友可测试一下这些缓存类。
例1
复制代码
代码如下:?php
$fzz
=
new
fzz_cache;
$fzz-kk
=
$_SERVER;
//写入缓存
//$fzz-set("kk",$_SERVER,10000);
//此方法不与类属性想冲突,可以用任意缓存名;
print_r($fzz-kk);
//读取缓存
//print_r($fzz-get("kk"));
//unset($fzz-kk);
//删除缓存
//$fzz-_unset("kk");
var_dump(isset($fzz-kk));
//判断缓存是否存在
//$fzz-_isset("kk");
//$fzz-clear();
//清理过期缓存
//$fzz-clear_all();
//清理所有缓存文件
class
fzz_cache{
public
$limit_time
=
20000;
//缓存过期时间
public
$cache_dir
=
"data";
//缓存文件保存目录
//写入缓存
function
__set($key
,
$val){
$this-_set($key
,$val);
}
//第三个参数为过期时间
function
_set($key
,$val,$limit_time=null){
$limit_time
=
$limit_time
?
$limit_time
:
$this-limit_time;
$file
=
$this-cache_dir."/".$key.".cache";
$val
=
serialize($val);
@file_put_contents($file,$val)
or
$this-error(__line__,"fail
to
write
in
file");
@chmod($file,0777);
@touch($file,time()+$limit_time)
or
$this-error(__line__,"fail
to
change
time");
}
//读取缓存
function
__get($key){
return
$this-_get($key);
}
function
_get($key){
$file
=
$this-cache_dir."/".$key.".cache";
if
(@filemtime($file)=time()){
return
unserialize(file_get_contents($file));
}else{
@unlink($file)
or
$this-error(__line__,"fail
to
unlink");
return
false;
}
}
//删除缓存文件
function
__unset($key){
return
$this-_unset($key);
}
function
_unset($key){
if
(@unlink($this-cache_dir."/".$key.".cache")){
return
true;
}else{
return
false;
}
}
//检查缓存是否存在,过期则认为不存在
function
__isset($key){
return
$this-_isset($key);
}
function
_isset($key){
$file
=
$this-cache_dir."/".$key.".cache";
if
(@filemtime($file)=time()){
return
true;
}else{
@unlink($file)
;
return
false;
}
}
//清除过期缓存文件
function
clear(){
$files
=
scandir($this-cache_dir);
foreach
($files
as
$val){
if
(filemtime($this-cache_dir."/".$val)time()){
@unlink($this-cache_dir."/".$val);
}
}
}
//清除所有缓存文件
function
clear_all(){
$files
=
scandir($this-cache_dir);
foreach
($files
as
$val){
@unlink($this-cache_dir."/".$val);
}
}
function
error($msg,$debug
=
false)
{
$err
=
new
Exception($msg);
$str
=
"pre
span
style='color:red'error:/span
".print_r($err-getTrace(),1)."
/pre";
if($debug
==
true)
{
file_put_contents(date('Y-m-d
H_i_s').".log",$str);
return
$str;
}else{
die($str);
}
}
}
?
php 中如何使用缓存,使用哪种缓存机制最好;
php的缓存三种.有文件缓存,数据库缓存,memcache缓存;
memcache缓存要求对服务器支持,而且它的缓存是由期限的,一般是30天。这种缓存的效率是最高的。读存取的速度最快。
数据库缓存
和
文件缓存比较简单。适用小的项目。和php新手