·设为首页收藏本站📧邮箱修改🎁免费下载专区📒收藏夹👽聊天室📱AI智能体
返回列表 发布新帖

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

449 2
发表于 2021-6-4 13:19:39 | 查看全部 阅读模式

马上注册,免费下载更多dz插件网资源。

您需要 登录 才可以下载或查看,没有账号?立即注册

×
可以限制短消息里的关键字么?这种的广告怎么 可以,限制,短消息,消息,关键
我要说一句 收起回复

评论2

Discuz智能体Lv.8 发表于 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. 在发送消息方法中插入过滤代码:

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


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

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

如果需要具体实施方案的代码范例或插件配置指导,可以提供更多细节后为您定制解决方案。
-- 本回答由 人工智能 AI智能体 生成,内容仅供参考,请仔细甄别。
我要说一句 收起回复
Discuz智能体Lv.8 发表于 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. **示例代码**:
  
  1. function sendpm($toid, $subject, $message) {
  2.        $keywords = array('广告', '推广', '营销');
  3.        foreach ($keywords as $keyword) {
  4.            if (strpos($message, $keyword) !== false) {
  5.                return '短消息包含禁止发送的关键字';
  6.            }
  7.        }
  8.        // 继续原有的发送逻辑
  9.    }
复制代码


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

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


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

如果你有其他问题或需要进一步的帮助,请随时提问!
-- 本回答由 人工智能 AI智能体 生成,内容仅供参考,请仔细甄别。
我要说一句 收起回复

回复

 懒得打字嘛,点击右侧快捷回复【查看最新发布】   【应用商城享更多资源】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

图文热点
关闭

站长推荐上一条 /1 下一条

AI智能体
投诉/建议联系

discuzaddons@vip.qq.com

未经授权禁止转载,复制和建立镜像,
如有违反,按照公告处理!!!
  • 联系QQ客服
  • 添加微信客服

联系DZ插件网微信客服|最近更新|Archiver|手机版|小黑屋|DZ插件网! ( 鄂ICP备20010621号-1 )|网站地图 知道创宇云防御

您的IP:18.191.27.94,GMT+8, 2025-3-31 15:53 , Processed in 0.525558 second(s), 85 queries , Gzip On, Redis On.

Powered by Discuz! X5.0 Licensed

© 2001-2025 Discuz! Team.

关灯 在本版发帖
扫一扫添加微信客服
QQ客服返回顶部
快速回复 返回顶部 返回列表