文件:/source/function/function_cache.php
function writetocache($script, $cachedata, $prefix = 'cache_') {
global $_G;
$dir = DISCUZ_ROOT.'./data/sysdata/';
if(!is_dir($dir)) {
dmkdir($dir, 0777);
}
if($fp = @fopen("$dir$prefix$script.php", 'wb')) {
fwrite($fp, "<?php\n//Discuz! cache file, DO NOT modify me!\n//Identify: ".md5($prefix.$script.'.php'.$cachedata.$_G['config']['security']['authkey'])."\n\n$cachedata?>");
fclose($fp);
} else {
exit('Can not write to cache files, please check directory ./data/ and ./data/sysdata/ .');
}
}
写入示范:
$contents['username']="test";
$contents['uid']=123;
$dateline=TIMESTAMP;
$cacheArray = "\$contents=".arrayeval($contents).";\n";
$cacheArray .= "\$dateline=$dateline;\n";
writetocache('mycache_contents', $cacheArray);
读取示范:
include_once DISCUZ_ROOT.'./data/sysdata/cache_mycache_contents'.php';
//接下来用缓存数据操作
注意:最新版本的Didcuz!缓存目录都在/data/sysdata/目录下,但是x2及之前的版本都在/data/cache/目录下,因此如果要兼容旧版本,需要对这个做一个判断;