Discuz缓存功能的使用介绍 [复制链接]

moqu8 2017-12-8

6 0
话说Discuz插件审核越来越严格,凡是用到相对固定数据读取数据库的,都需要使用缓存才给过,要不然就会驳回,这里就介绍下Discuz缓存功能的使用,其实就几个函数的使用,直接上代码
写入缓存:
require_once libfile('function/cache'); // 引入缓存函数
$navlist = array(1, 2, 3); // 带缓存的数据
$cacheArr = "\$navlist = " . arrayeval($navlist) . ";\n"; // 缓存序列化?差不多这个意思
// 写入缓存,生成的缓存文件路径是data/sysdata/cache_nciaer_demo.php,其实内容就是个数组
writetocache("nciaer_demo", $cacheArr);

读取缓存:
读取就容易多了,直接引用就行
// 判断缓存文件是否存在
if(file_exists(DISCUZ_ROOT . "./data/sysdata/cache_nciaer_demo.php")) {
        require_once DISCUZ_ROOT . "./data/sysdata/cache_nciaer_demo.php";
} else {
        // 不存在就重新缓存,不一定需要
        require_once libfile('function/cache');
        $navlist = array(1, 2, 3);
        $cacheArr = "\$navlist = " . arrayeval($navlist) . ";\n";
        writetocache("nciaer_demo", $cacheArr);
}
然后直接在代码里使用$navlist数组变量就行。

可能有时候需要判断缓存的有效期,可以通过缓存文件的修改时间来判断,如使用filemtime函数来获取缓存文件上次的修改时间,然后用当前时间戳减去缓存文件修改时间,就知道这个缓存文件已经存在多久了,如果大于预设的缓存有效期,则重新生成缓存文件。

转载于:http://www.nciaer.com/thread-16-1-1.html

最新回复 (0)
返回
支持中心
邮箱:winkill2012@qqcom
新站优化中!部分功能尚未完善,敬请谅解!
支持中心