关键字替换

关键字替换运维管控

版本 v1.0.0· 胡思乱想 · 2 次获取 · 运维管控
批量替换 zsadmin 程序数据库关键字的后台工具插件。
¥2.00抵扣
一次购买,永久使用

详情介绍

关键字替换 (kwreplace)

批量替换 zsadmin 程序数据库关键字的后台工具插件。

功能特性

  • 字段可勾选 —— 支持按表勾选任意文本字段进行替换
  • 时间可筛选 —— 按创建/更新时间限定替换范围,精准定位
  • 先预览再执行 —— 预览模式统计各表/字段匹配条数,确认无误后再执行实际替换
  • 表前缀自动适配 —— 使用 ThinkPHP Db::name() + 查询构造器,自动适配当前数据库的表前缀
  • 事务包裹 + 回滚 —— 所有替换在数据库事务中执行,任一字段更新失败则全部回滚
  • SQL 注入防护 —— 使用 Db::getPdo()->quote() 严格转义查找/替换字符串,字段名白名单 + 正则校验
  • 操作日志 —— 执行成功/失败均记录到宿主日志

支持的表与字段

数据表中文名可替换字段
community_topic社区帖子title, content, softwareupdate, videourl
community_reply社区回复content, quote_excerpt
community_category社区分类name, description, seotitle, seokeywords, seo_description
community_tag社区标签name
community_page社区单页title, content, seotitle, seokeywords, seo_description
community_report社区举报topic_title, reason

插件会自动检测目标表是否存在,不存在则跳过并记录告警日志。

安装与启用

  1. 将 kwreplace 目录放入 themes/kwreplace/
  2. 在后台 插件管理 中启用插件即可
  3. 插件启用后会自动:

  - 在 plugins/kwreplace/ 生成路由胶水文件(卸载时自动删除)

  - 在后台左侧菜单注册「关键字替换」入口

使用方法

第一步:填写查找与替换

  • 查找关键字:要被替换的原文内容(必填)
  • 替换为:替换后的新内容(留空表示删除该关键字)

第二步:可选时间筛选

  • 选择时间字段(createtime / updatetime)
  • 填写开始和结束日期(含当天)
  • 提供「近7天 / 近30天 / 清空」快捷按钮

第三步:勾选字段

  • 按表名分组展示,勾选要操作的字段
  • 表名前的复选框可一键全选该表下所有字段
  • 底部显示已选字段数量

第四步:预览匹配

  • 点击「预览匹配条数」,系统在所有勾选的表/字段中统计 LIKE 匹配数
  • 展示每个字段的具体匹配条数,帮助确认替换范围是否正确

第五步:执行替换

  • 确认预览结果无误后,点击「执行替换」
  • 二次确认弹窗后,事务内执行 UPDATE ... SET field = REPLACE(field, ?)
  • 展示各表/字段实际影响行数

安全说明

  • 必须先备份数据库! 插件会直接修改数据库内容
  • 执行过程中任一更新失败将自动回滚整个事务,不会产生脏数据
  • 查找字符串中的 SQL 特殊字符(%, _, \)已做 LIKE 转义
  • 字段名使用白名单 + 正则校验,防止注入非法字段
  • 插件仅修改已勾选的字段,不会改动未选择的表/字段

技术实现

  • 框架:ThinkPHP 8.x
  • PHP 版本:8.2+
  • 无新增数据表,纯工具类插件
  • 静态资源位于 themes/kwreplace/static/,需复制到宿主 public/static/kwreplace/ 下(或由宿主自动处理)

作者

kuakeba.cn


更新记录 (1)

  • v1.0.0 2026-10-22
    正式发布
微信客服 微信客服 QQ官方交流群 QQ官方交流群