PageRenderTime 25ms CodeModel.GetById 35ms RepoModel.GetById 0ms app.codeStats 0ms

/include/function_cache.php

https://github.com/skdswj/corpms
PHP | 230 lines | 60 code | 9 blank | 161 comment | 7 complexity | e6d98bd31206d93f9cfc5ecbf1bf6cf0 MD5 | raw file
  1. <?php
  2. //2011.2.12
  3. if(!defined('IN_CORP')) {
  4. exit('Access Denied');
  5. }
  6. //更新管理员用户缓存
  7. function adminuser_cache(){
  8. global $db,$CACHE;
  9. $CACHE['adminuser'] = array();
  10. $user_tb = tname('user');
  11. $user_group_tb = tname('user_group');
  12. $query = $db -> query("SELECT * FROM $user_tb,$user_group_tb WHERE $user_tb . `uid` = $user_group_tb . `uid` AND `groupid` = 1");
  13. while ($value = $db->fetch_array($query)){
  14. $CACHE['adminuser'][] = $value;
  15. }
  16. cache_write('adminuser','CACHE[\'adminuser\']',$CACHE['adminuser']);
  17. }
  18. /*//更新配置文件
  19. function config_cache() {
  20. global $db, $_SCONFIG;
  21. $_SCONFIG = array();
  22. $query = $db->query('SELECT * FROM '.tname('config'));
  23. while ($value = $db->fetch_array($query)) {
  24. if($value['var'] == 'privacy') {
  25. $value['value'] = empty($value['value'])?array():unserialize($value['value']);
  26. }
  27. $_SCONFIG[$value['var']] = $value['value'];
  28. }
  29. cache_write('config', '_SCONFIG', $_SCONFIG);
  30. }
  31. //更新用户组CACHE
  32. function usergroup_cache() {
  33. global $db,$CACHE;
  34. $CACHE['usergroup'] = array();
  35. $highest = true;
  36. $lower = '';
  37. $query = $db->query('SELECT * FROM '.tname('usergroup').";");
  38. while ($group = $db->fetch_array($query)) {
  39. $CACHE['usergroup'][$group['groupid']] = $group;
  40. }
  41. cache_write('usergroup', "CACHE['usergroup']", $CACHE['usergroup']);
  42. }
  43. //更新词语屏蔽~
  44. function censor_cache() {
  45. global $CACHE,$db;
  46. $CACHE['censor'] = $banned = $banwords = array();
  47. $censorarr = $db->fetch_first("SELECT value FROM ".tname("config")." WHERE var='censor'");
  48. //print_r($censorarr);
  49. $censorarr = explode("\n", $censorarr['value']);
  50. //print_r($censorarr);
  51. foreach($censorarr as $censor){
  52. $censor = trim($censor);
  53. if(empty($censor)) continue;
  54. list($find, $replace) = explode('=', $censor);
  55. $findword = $find;
  56. $find = preg_replace("/\\\{(\d+)\\\}/", ".{0,\\1}", preg_quote($find, '/'));
  57. switch($replace) {
  58. case '{BANNED}':
  59. $banwords[] = preg_replace("/\\\{(\d+)\\\}/", "*", preg_quote($findword, '/'));
  60. $banned[] = $find;
  61. break;
  62. default:
  63. $CACHE['censor']['filter']['find'][] = '/'.$find.'/i';
  64. $CACHE['censor']['filter']['replace'][] = $replace;
  65. break;
  66. }
  67. }
  68. if($banned) {
  69. $CACHE['censor']['banned'] = '/('.implode('|', $banned).')/i';
  70. $CACHE['censor']['banword'] = implode(', ', $banwords);
  71. }
  72. cache_write('censor', "CACHE['censor']", $CACHE['censor']);
  73. }
  74. //更新广告缓存
  75. function ad_cache() {
  76. global $CACHE,$db;
  77. $CACHE['ad'] = array();
  78. $query = $db->query('SELECT adid, position FROM '.tname('ad')." WHERE system='1' AND available='1'");
  79. while ($value = $db->fetch_array($query)) {
  80. $CACHE['ad'][$value['pagetype']][] = $value['adid'];
  81. }
  82. cache_write('ad', "CACHE['ad']", $CACHE['ad']);
  83. }
  84. //更新隐私缓存
  85. function privacy_cache() {
  86. global $CACHE,$db;
  87. $CACHE['privacy'] = array();
  88. $query = $db->query('SELECT * FROM '.tname('privacy').";");
  89. while ($value = $db->fetch_array($query)) {
  90. $CACHE['privacy'][$value['pid']] = $value;
  91. }
  92. cache_write('privacy', "CACHE['privacy']", $CACHE['privacy']);
  93. }
  94. //更新推荐用户缓存
  95. function supUser_cache() {
  96. global $CACHE,$db;
  97. $CACHE['supUser'] = array();
  98. $query = $db->query('SELECT * FROM '.tname('user')." WHERE isup=1");
  99. while ($value = $db->fetch_array($query)) {
  100. $CACHE['supUser'][$value['uid']] = $value;
  101. }
  102. cache_write('supUser', "CACHE['supUser']", $CACHE['supUser']);
  103. }
  104. //更新超级管理员缓存
  105. function supAdmin_cache() {
  106. global $CACHE,$db;
  107. $CACHE['supAdmin'] = array();
  108. $admins = get_alluser(-1);
  109. if($admins){
  110. foreach ($admins as $admin)
  111. $CACHE['supAdmin'][] = $admin['uid'];
  112. }
  113. cache_write('supAdmin', "CACHE['supAdmin']", $CACHE['supAdmin']);
  114. }
  115. //清空模板文件
  116. function tpl_cache() {
  117. //include_once(CORP_ROOT.'./source/function_cp.php');
  118. $dir = CORP_ROOT.'./cache/templates';
  119. $files = sreaddir($dir);
  120. foreach ($files as $file) {
  121. @unlink($dir.'/'.$file);
  122. }
  123. }
  124. //递归清空目录
  125. function deltreedir($dir) {
  126. $files = sreaddir($dir);
  127. foreach ($files as $file) {
  128. if(is_dir("$dir/$file")) {
  129. deltreedir("$dir/$file");
  130. } else {
  131. @unlink("$dir/$file");
  132. }
  133. }
  134. }*/
  135. /**
  136. * 函数名:function arrayeval(array $array,int $level)
  137. * 功 能:将数组转为字符转
  138. * 参 数:$array:待转化字符 $level:行前制表符个数
  139. * 返回值:转化好的字符串
  140. */
  141. function arrayeval($array, $level = 0) {
  142. $space = '';
  143. for($i = 0; $i <= $level; $i++) {
  144. $space .= "\t";
  145. }
  146. $evaluate = "Array\n$space(\n";
  147. $comma = $space;
  148. foreach($array as $key => $val) {
  149. $key = is_string($key) ? '\''.addcslashes($key, '\'\\').'\'' : $key;
  150. $val = !is_array($val) && (!preg_match("/^\-?\d+$/", $val) || strlen($val) > 12) ? '\''.addcslashes($val, '\'\\').'\'' : $val;
  151. if(is_array($val)) {
  152. $evaluate .= "$comma$key => ".arrayeval($val, $level + 1);
  153. } else {
  154. $evaluate .= "$comma$key => $val";
  155. }
  156. $comma = ",\n$space";
  157. }
  158. $evaluate .= "\n$space)";
  159. return $evaluate;
  160. }
  161. /**
  162. * 函数名:function cache_write(string $name, string $var, array $values)
  163. * 功 能:写入缓存
  164. * 参 数:$name:缓存文件名(前缀为data)$var:参数名 $values:需写入的数组
  165. * 返回值:无
  166. */
  167. function cache_write($name, $var, $values) {
  168. $cachefile = CORP_ROOT.'./cache/data_'.$name.'.php';
  169. $cachetext = "<?php\r\n".
  170. "if(!defined('IN_CORP')) exit('Access Denied');\r\n".
  171. '$'.$var.'='.arrayeval($values).
  172. "\r\n?>";
  173. if(!swritefile($cachefile, $cachetext)) {
  174. exit("File: $cachefile write error.");
  175. }
  176. }
  177. /**
  178. * 函数名:get_cache($name)
  179. * 功 能:取缓存
  180. * 参 数:$name:缓存文件名(前缀为data)$var:参数名 $values:需写入的数组
  181. * 返回值:无
  182. */
  183. function get_cache($name){
  184. global $CACHE;
  185. if(!file_exists(CORP_ROOT."./cache/data_$name.php")){
  186. $cache_name = $name.'_cache';
  187. $cache_name();
  188. }else{
  189. include_once CORP_ROOT."./cache/data_$name.php";
  190. }
  191. }
  192. /**
  193. * 函数名:update_cache($name)
  194. * 功 能:更新缓存
  195. * 参 数:$name:缓存文件名(前缀为data)$var:参数名 $values:需写入的数组
  196. * 返回值:无
  197. */
  198. function update_cache($name){
  199. global $CACHE;
  200. $cache_name = $name.'_cache';
  201. $cache_name();
  202. }
  203. ?>