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

返回列表 發帖
查看: 3316|回復: 5

[已解決] dz后臺設置的詞語過濾不起效果了

2

主題

5

回帖

13

積分

初學乍練

貢獻
0 點
金幣
5 個
樓主
發表于 2021-12-16 14:14:37 | 只看樓主 |只看大圖 |倒序瀏覽 |閱讀模式
common_word 表數據是有的 ./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']];
復制代碼
但是 $this->censor_words 獲取到的內容是空數組


想問下 $_G['cache']['censor'] 這個數組在哪可以查看和設置,更新過緩存也沒用
我知道答案 回答被采納將會獲得1 貢獻 已有5人回答
回復

使用道具 舉報

2

主題

5

回帖

13

積分

初學乍練

貢獻
0 點
金幣
5 個
沙發
 樓主| 發表于 2021-12-16 17:00:02 | 只看Ta
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.            //這里輸出時 結果為空
  15.             if($cname == 'censor'){
  16.               echo '<!--';
  17.               print_r($data);
  18.              echo '-->';
  19.             }
  20.           }
  21.     }
  22.         }
復制代碼


回復

使用道具 舉報

56

主題

1470

回帖

3萬

積分

管理員

貢獻
2076 點
金幣
1394 個
板凳
發表于 2021-12-16 21:44:40 | 只看Ta
首先,這個文件是否存在 source\function\cache\cache_censor.php,然后后臺更新緩存,如果全局里開了內存優化,關閉測試
回復

使用道具 舉報

2

主題

5

回帖

13

積分

初學乍練

貢獻
0 點
金幣
5 個
地板
 樓主| 發表于 2021-12-17 08:01:28 | 只看Ta
解決了,序列化儲存時有問題;

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

測試環境下對比了common_syscache 的cname = censor 的data 大小 ,少了0.02k,替換了下數據解決了;
回復

使用道具 舉報

2

主題

5

回帖

13

積分

初學乍練

貢獻
0 點
金幣
5 個
5#
 樓主| 發表于 2021-12-17 10:34:37 | 只看Ta
dashen 發表于 2021-12-16 21:44
首先,這個文件是否存在 source\function\cache\cache_censor.php,然后后臺更新緩存,如果全局里開了內存 ...

你好,又有個新的問題,正式環境是3.4gbk版的,php是7.4的,在serialize的時候存到數據表 是這樣的

但是 unserialize 的時候 是空的;

使用php5.6的時候

擼 字 變成了  擻 ]   反而是能反序列化的,


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

使用道具 舉報

12

主題

1655

回帖

2814

積分

Giter

貢獻
151 點
金幣
362 個
6#
發表于 2021-12-19 03:20:46 | 只看Ta
云山幾萬重 發表于 2021-12-17 10:34
你好,又有個新的問題,正式環境是3.4gbk版的,php是7.4的,在serialize的時候存到數據表 是這樣的

但是 uns ...

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

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

  • 關注公眾號
  • 有償服務微信
  • 有償服務QQ

手機版|小黑屋|Discuz! 官方交流社區 ( 皖ICP備16010102號 |皖公網安備34010302002376號 )|網站地圖|star

GMT+8, 2025-9-20 04:32 , Processed in 0.089384 second(s), 30 queries .

Powered by Discuz! W1.0 Licensed

Copyright © 2001-2025 Discuz! Team.

關燈 在本版發帖
有償服務QQ
有償服務微信
返回頂部
快速回復 返回頂部 返回列表