Discuz!文件缓存函数writetocache()解析

文件:/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, "");
		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/目录下,因此如果要兼容旧版本,需要对这个做一个判断;

你可能感兴趣的:(Discuz!,函数)