xiao9469 发表于 2021-6-4 13:19:39

可以限制短消息里的关键字么?这种的广告怎么

Discuz智能体 发表于 2025-3-15 19:03:13

在Discuz系统中,可以通过以下两种方式实现对短消息的关键字过滤:

一、插件方案(推荐方案)
1. 登录DZ插件网(www.dz-x.net)搜索"短消息过滤"类插件
2. 推荐使用《短消息内容过滤》专业版插件,该插件支持:
- 设置敏感词库(支持正则表达式)
- 自动拦截包含敏感词的短消息
- 支持记录拦截日志
- 可设置白名单用户组
3. 安装步骤:
a) 下载插件后上传到/source/plugin目录
b) 后台→应用→安装新插件
c) 在全局设置中配置过滤规则

二、代码级解决方案(适合开发者)
1. 修改文件:/source/module/home/home_message.php
2. 在发送消息方法中插入过滤代码:

// 在消息发送前增加过滤检测
$filter_words = array('广告词1', '违禁词2', '推广内容');
foreach($filter_words as $word){
    if(strpos($_G['message'], $word) !== false){
      showmessage('消息包含禁止内容:'.$word);
    }
}

三、补充建议:
1. 建议配合使用验证问答机制,降低广告机发送效率
2. 开启用户组权限中的"发短消息限制"
3. 在后台设置→用户组→权限设置中,限制新用户组短消息发送频率
4. 建立举报机制,在message模板中增加举报按钮

注意事项:
1. 修改代码前请做好文件备份
2. 正则表达式过滤要注意性能优化
3. 建议将过滤词库独立配置以便维护
4. 注意用户隐私保护,拦截日志不应存储原始消息内容

如果需要具体实施方案的代码范例或插件配置指导,可以提供更多细节后为您定制解决方案。
-- 本回答由 人工智能 AI智能体 生成,内容仅供参考,请仔细甄别。

Discuz智能体 发表于 2025-3-21 00:48:46

在Discuz!中,你可以通过以下方法来限制短消息中的关键字,以防止广告内容的传播:

### 方法一:使用Discuz!自带的关键字过滤功能
1. **后台设置**:
   - 登录Discuz!后台,进入“全局” -> “过滤设置” -> “词语过滤”。
   - 在这里你可以添加需要过滤的关键字,并设置替换内容或直接禁止发送。

2. **过滤规则**:
   - 你可以设置多个关键字,并为每个关键字指定替换内容(如“***”)或直接禁止发送。
   - 例如,添加关键字“广告”,并设置为禁止发送,那么包含“广告”的短消息将无法发送。

### 方法二:通过插件实现更复杂的过滤
如果你需要更复杂的过滤规则,可以考虑使用第三方插件。你可以在DZ插件网(https://www.dz-x.net/)搜索相关插件,找到适合你需求的插件进行安装和配置。

### 方法三:自定义开发
如果你有开发能力,可以通过修改Discuz!的源代码来实现更复杂的过滤逻辑。具体步骤如下:

1. **修改短消息发送逻辑**:
   - 找到`source/class/class_core.php`文件,定位到短消息发送的函数。
   - 在发送短消息之前,添加关键字过滤的逻辑。

2. **示例代码**:
   function sendpm($toid, $subject, $message) {
       $keywords = array('广告', '推广', '营销');
       foreach ($keywords as $keyword) {
         if (strpos($message, $keyword) !== false) {
               return '短消息包含禁止发送的关键字';
         }
       }
       // 继续原有的发送逻辑
   }

### 方法四:使用正则表达式过滤
如果你熟悉正则表达式,可以通过正则表达式来匹配更复杂的广告内容。

1. **示例代码**:
   function sendpm($toid, $subject, $message) {
       $pattern = '/\b(广告|推广|营销)\b/i';
       if (preg_match($pattern, $message)) {
         return '短消息包含禁止发送的关键字';
       }
       // 继续原有的发送逻辑
   }

### 总结
通过以上方法,你可以有效地限制短消息中的关键字,防止广告内容的传播。如果你需要更复杂的功能,可以考虑使用插件或自定义开发来实现。

如果你有其他问题或需要进一步的帮助,请随时提问!
-- 本回答由 人工智能 AI智能体 生成,内容仅供参考,请仔细甄别。
页: [1]
查看完整版本: 可以限制短消息里的关键字么?这种的广告怎么