我是靠谱客的博主 害怕香水,最近开发中收集的这篇文章主要介绍php数据库缓存类,PHP数据缓存类必要性分析,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

大家通过对PHP语言进一步的了解,可以知道,它是一款功能强大的嵌入式HTML脚本语言。虽然PHP的执行效率很高,速度很快,但是连接数据库、查询数据库等还是比较耗时的。

如果访问量大的话会给数据库造成很大的负担,所以对于变化不经常的内容要做好PHP数据cache(缓存)是十分必要的,我做了一个简单的PHP数据缓存类,希望对大家有所帮助。

思路是这样的:

对于一般的变量,把该变量变成PHP语言的格式,写到文件中,用时只要include这个文件就相当于加载了PHP数据缓存类了;

对于array型的变量,把array转化为PHP语言定义array的字符串,写到文件中,用时也只要include就相当于加载了cache了;

PHP数据缓存类时间上的控制,通过获取缓存文件的创建时间和现在的时间进行对比,如果没有到更新时间,直接读取缓存,如果到了更新时间,查询数据库,返回数据,再更新缓存。(尚未实现)

下面是我的PHP-kcache类(PHP_kcache_class.PHP):

注:如果是缓存字符串,请把转义字符多写一个’',即”n”要写成”\n”。

/*

//PHP-kcache class v_0.1

//Author: kangzj

//Email : kangzj@mail.bnu.edu.cn

//Blog : http://kangzj.net.ru

//作者不保证本程序没有bug,对于使用本程序

//而引起的任何问题不担负任何责任。

*/

classPHP_kcache {

//相对或者绝对目录,末尾不要加 '/'

var $cache_dir='./cache';

var $cache_extension='.cache.PHP';

function set_cache($name, $value){

$pre="< ?n//Cache Created at: ".date('Y-m-d H:i:s')."n";

if(!is_array($value)){

$value= $value;

$str="$$name = '$value';";

}else{

$str="$$name = ". $this->arrayeval($value) . ';';

}

$end="n?>";

echo $cache= $pre . $str . $end;

$cache_file= $this->cache_dir .

'/' . $name . $this->cache_extension;

if($fp= @fopen($cache_file, 'wb')) {

fwrite($fp, $cache);

fclose($fp);

return true;

} else {

echo $cache_file;

exit('Can not write to cache files,

please check cache directory ');

return false;

}

}

//将array变成字符串, 来自discuz!

function arrayeval($array, $level=0) {

if(!is_array($array)) {

return "'".$array."'";

}

$space='';

for($i=0; $i<= $level; $i++) {

$space.="t";

}

$evaluate="Arrayn$space(n";

$comma= $space;

if(is_array($array)) {

foreach($array as $key=>$val) {

$key=is_string($key) ? '''.addcslashes

($key, ''\').''' : $key;

$val= !is_array($val) &&

(!preg_match("/^-?[1-9]d*$/", $val)

|| strlen($val)>12) ? '''.addcslashes

($val, ''\').''' : $val;

if(is_array($val)) {

$evaluate.="$comma$key => ".

arrayeval($val, $level + 1);

} else {

$evaluate.="$comma$key => $val";

}

$comma=",n$space";

}

}

$evaluate.="n$space)";

return $evaluate;

}

}

最简单的PHP数据缓存类调用方法:

include './PHP_kcache_class.PHP';

$pc=newPHP_kcache;

$a=array('a', 'b', 'c');

$pc->set_cache('a', addslashes($a));

【责任编辑:曹凯 TEL:(010)68476606】

点赞 0

最后

以上就是害怕香水为你收集整理的php数据库缓存类,PHP数据缓存类必要性分析的全部内容,希望文章能够帮你解决php数据库缓存类,PHP数据缓存类必要性分析所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(55)

评论列表共有 0 条评论

立即
投稿
返回
顶部