//更新词语屏蔽
function censor_cache() {
global $_SGLOBAL;
$_SGLOBAL['censor'] = $banned = $banwords = array();
$censorarr = explode(“\n”, data_get(‘censor’));
foreach($censorarr as $censor) {
$censor = trim($censor);
if(empty($censor)) continue;
list($find, $replace) = explode(‘=’, $censor);
$findword = $find;
$find = preg_replace(“/\\\{(\d+)\\\}/”, ”.{0,\\1}”, preg_quote($find, ’/'));
switch($replace) {
case ’{BANNED}’:
$banwords[] = preg_replace(“/\\\{(\d+)\\\}/”, ”*”, preg_quote($findword, ’/'));
$banned[] = $find;
break;
default:
$_SGLOBAL['censor']['filter']['find'][] = ’/’.$find.’/i’;
$_SGLOBAL['censor']['filter']['replace'][] = $replace;
break;
}
}
if($banned) {
$_SGLOBAL['censor']['banned'] = ’/(‘.implode(‘|’, $banned).’)/i’;
$_SGLOBAL['censor']['banword'] = implode(‘, ’, $banwords);
}
cache_write(‘censor’, ”_SGLOBAL['censor']“, $_SGLOBAL['censor']);
}
$tags = str_replace(array(chr(0xa3).chr(0xac), chr(0xa1).chr(0×41), chr(0xef).chr(0xbc).chr(0x8c)), ’,', censor($tags));
if(strexists($tags, ’,')) {
$tagarray = array_unique(explode(‘,’, $tags));
} else {
$tags = str_replace(array(chr(0xa1).chr(0xa1), chr(0xa1).chr(0×40), chr(0xe3).chr(0×80).chr(0×80)), ’ ’, $tags);
$tagarray = array_unique(explode(‘ ’, $tags));
}