function updatecache($cachename = \'\') {
$cachedir = DISCUZ_ROOT . \'source/function/cache\';
$cachedirhandle = dir($cachedir);
//循环执行缓存文件中的函数
while($entry = $cachedirhandle->read()) {
if(!in_array($entry,array(\'.\',\'..\')) && preg_match("/^cache\_([\_\w]+)\.php$/i",$entry,$entryr)) {
include_once libfile(\'cache/\'.$entryr[1],\'function\');
call_user_func(\'build_cache_\'.$entryr[1]);
}
}
}
// 缓存文件中的函数
function build_cache_click() {
$data = $keys = array();
foreach(C::(\'home_click\')->fetch_all_by_available() as $value) {
//得到$data 这里省略
}
savecache(\'click\',$data); // 更新表pre_common_syscache中的数据
}
// 更新数据 function_core.php
function savecache($cachename,$data) {
C::t(\'common_syscache\')->insert($cachename,$data);
}
//table_common_syscache.php
function insert($cachename,$data) {
//更新表 pre_common_syscache 中的数据 数据库级的缓存
parent::insert(array(
\'cname\'=> $cachename,
\'ctype\'=> is_array($data) ? 1:0,
\'dateline\'=> TIMESTAMP,
\'data\' => is_array($data) ? serialize($data) : $data
),false,true);
//如果存在内存级的缓存,则更新缓存
if($this->_allowmem && memory(\'get\',$cachename) !== false) {
memory(\'set\',$cachename, $data);
}
//文件缓存
$this->_isfilecache && @unlink(DISCUZ_ROOT.\'./data/cache/cache_\'.$cachename,\'.php\');
}