久久久久av_欧美日韩一区二区在线_国产精品三区四区_日韩中字在线

Discuz! 官方交流社區(qū)

標題: dz后臺設(shè)置的詞語過濾不起效果了 [打印本頁]

作者: 云山幾萬重    時間: 2021-12-16 14:14
標題: dz后臺設(shè)置的詞語過濾不起效果了
common_word 表數(shù)據(jù)是有的 ./source/class/discuz/discuz_censor.php 文件中
  1. public function __construct() {
  2.     global $_G;
  3.     loadcache(array('censor', 'bbcodes_display'));
  4.     $this->censor_words = !empty($_G['cache']['censor']) ? $_G['cache']['censor'] : array();
  5.     $this->bbcodes_display = $_G['cache']['bbcodes_display'][$_G['groupid']];
復(fù)制代碼
但是 $this->censor_words 獲取到的內(nèi)容是空數(shù)組


想問下 $_G['cache']['censor'] 這個數(shù)組在哪可以查看和設(shè)置,更新過緩存也沒用

作者: 云山幾萬重    時間: 2021-12-16 17:00
loadcache(array('censor', 'bbcodes_display'));


方法進去以后
  1. if(!empty($caches)) {
  2.     $cachedata = C::t('common_syscache')->fetch_all($caches);
  3.     foreach($cachedata as $cname => $data) {
  4.        if($cname == 'setting') {
  5.           $_G['setting'] = $data;
  6.        } elseif($cname == 'usergroup_'.$_G['groupid']) {
  7.              $_G['cache'][$cname] = $_G['group'] = $data;
  8.        } elseif($cname == 'style_default') {
  9.              $_G['cache'][$cname] = $_G['style'] = $data;
  10.         } elseif($cname == 'grouplevels') {
  11.             $_G['grouplevels'] = $data;
  12.         } else {
  13.             $_G['cache'][$cname] = $data;
  14.            //這里輸出時 結(jié)果為空
  15.             if($cname == 'censor'){
  16.               echo '<!--';
  17.               print_r($data);
  18.              echo '-->';
  19.             }
  20.           }
  21.     }
  22.         }
復(fù)制代碼



作者: dashen    時間: 2021-12-16 21:44
首先,這個文件是否存在 source\function\cache\cache_censor.php,然后后臺更新緩存,如果全局里開了內(nèi)存優(yōu)化,關(guān)閉測試
作者: 云山幾萬重    時間: 2021-12-17 08:01
解決了,序列化儲存時有問題;

直接 Db::fetch_first...有返回數(shù)據(jù),
用   C::t('common_syscache')->fetch_all(['censor']);  就沒有,看了下就是多了反序列化操作;

測試環(huán)境下對比了common_syscache 的cname = censor 的data 大小 ,少了0.02k,替換了下數(shù)據(jù)解決了;
作者: 云山幾萬重    時間: 2021-12-17 10:34
dashen 發(fā)表于 2021-12-16 21:44
首先,這個文件是否存在 source\function\cache\cache_censor.php,然后后臺更新緩存,如果全局里開了內(nèi)存 ...

你好,又有個新的問題,正式環(huán)境是3.4gbk版的,php是7.4的,在serialize的時候存到數(shù)據(jù)表 是這樣的
(, 下載次數(shù): 7)
但是 unserialize 的時候 是空的;

使用php5.6的時候
(, 下載次數(shù): 2)
擼 字 變成了  擻 ]   反而是能反序列化的,
(, 下載次數(shù): 4)

請問有什么方法可以處理這個問題,因為還有好多個類似的敏感詞都是這個問題

作者: 專家    時間: 2021-12-19 03:20
云山幾萬重 發(fā)表于 2021-12-17 10:34
你好,又有個新的問題,正式環(huán)境是3.4gbk版的,php是7.4的,在serialize的時候存到數(shù)據(jù)表 是這樣的

但是 uns ...

你用的應(yīng)該是GBK吧,盡量不要用GBK處理特殊的文字符號,否則造成的bug很難解決。
正常的常見簡體字是沒有這種問題的。
另外可以嘗試更新到最新版本的Discuz再試試看。




歡迎光臨 Discuz! 官方交流社區(qū) (http://www.9999xn.com/) Powered by Discuz! W1.0