ucenter中词语过滤原理分析


Posted in PHP onJuly 13, 2016

本文分析了ucenter中词语过滤原理。分享给大家供大家参考,具体如下:

过滤词语表:

id admin find replacement findpattern
1 UCenterAdminist 访问 /访问/is
2 UCenterAdminist 4655 45 /4655/is
3 UCenterAdminist fdsaf dfsa /fdsaf/is
4 UCenterAdminist 有机会 /有机会/is

组建缓存数据:

//private
function _get_badwords() {
  $data = $this->db->fetch_all("SELECT * FROM ".UC_DBTABLEPRE."badwords");
  $return = array();
  if(is_array($data)) {
    foreach($data as $k => $v) {
      $return['findpattern'][$k] = $v['findpattern'];
      $return['replace'][$k] = $v['replacement'];
    }
  }
  return $return;
}

调用方法:

$_CACHE['badwords'] = $this->base->cache('badwords');
if($_CACHE['badwords']['findpattern']) {
  $subject = @preg_replace($_CACHE['badwords']['findpattern'], $_CACHE['badwords']['replace'], $subject);
  $message = @preg_replace($_CACHE['badwords']['findpattern'], $_CACHE['badwords']['replace'], $message);
}

preg_replace() 的每个参数(除了 limit)都可以是一个数组。如果 pattern 和 replacement 都是数组,将以其键名在数组中出现的顺序来进行处理。这不一定和索引的数字顺序相同。如果使用索引来标识哪个 pattern 将被哪个 replacement 来替换,应该在调用 preg_replace() 之前用 ksort() 对数组进行排序。

希望本文所述对大家PHP程序设计有所帮助。

PHP 相关文章推荐
php htmlspecialchars加强版
Feb 16 PHP
PHP初学者常见问题集合 修正版(21问答)
Mar 23 PHP
探讨PHP函数ip2long转换IP时数值太大产生负数的解决方法
Jun 06 PHP
定义php常量的详解
Jun 09 PHP
php网站地图生成类示例
Jan 13 PHP
php不使用copy()函数复制文件的方法
Mar 13 PHP
PHP批量去除BOM头代码分享
Jun 26 PHP
PHP使用SOAP扩展实现WebService的方法
Apr 01 PHP
php版微信公众号自定义分享内容实现方法
Sep 22 PHP
基于php流程控制语句和循环控制语句(讲解)
Oct 23 PHP
Thinkphp5 微信公众号token验证不成功的原因及解决方法
Nov 12 PHP
PHP连接sftp并下载文件的方法教程
Aug 26 PHP
PHP文件及文件夹操作之创建、删除、移动、复制
Jul 13 #PHP
php基于PDO连接MSSQL示例DEMO
Jul 13 #PHP
Yii隐藏URL中index.php的方法
Jul 12 #PHP
zen cart实现订单中增加paypal中预留电话的方法
Jul 12 #PHP
Yii CGridView用法实例详解
Jul 12 #PHP
Yii视图CGridView列表用法实例分析
Jul 12 #PHP
微信支付开发动态链接Native支付
Jul 12 #PHP
You might like
转生史莱姆:萌王第一次撸串开心到飞起,哥布塔撸串却神似界王神
2018/11/30 日漫
PHP生成月历代码
2007/06/14 PHP
PHP获取一个字符串中间一部分字符的方法
2014/08/19 PHP
Aster vs KG BO3 第一场2.18
2021/03/10 DOTA
12个非常有创意的JavaScript小游戏
2010/03/18 Javascript
css transform 3D幻灯片特效实现步骤解读
2013/03/27 Javascript
js实现图片轮换效果代码
2013/04/16 Javascript
Jquery实现弹性滑块滑动选择数值插件
2015/08/08 Javascript
js实现页面刷新滚动条位置不变
2016/11/27 Javascript
Express与NodeJs创建服务器的两种方法
2017/02/06 NodeJs
js对象实例详解(JavaScript对象深度剖析,深度理解js对象)
2017/09/21 Javascript
JavaScript重复元素处理方法分析【统计个数、计算、去重复等】
2017/12/14 Javascript
如何把vuejs打包出来的文件整合到springboot里
2018/07/26 Javascript
Angular 利用路由跳转到指定页面的指定位置方法
2018/08/31 Javascript
微信运维交互机器人的示例代码
2018/11/12 Javascript
使用electron制作满屏心特效的示例代码
2018/11/27 Javascript
vue响应式更新机制及不使用框架实现简单的数据双向绑定问题
2019/06/27 Javascript
vue 调用 RESTful风格接口操作
2020/08/11 Javascript
通过数据库对Django进行删除字段和删除模型的操作
2015/07/21 Python
Python正则表达式实现截取成对括号的方法
2017/01/06 Python
python实现简单名片管理系统
2018/11/30 Python
Tensorflow 1.0之后模型文件、权重数值的读取方式
2020/02/12 Python
Python configparser模块配置文件过程解析
2020/03/03 Python
Python读取VOC中的xml目标框实例
2020/03/10 Python
基于Django集成CAS实现流程详解
2020/11/28 Python
Matplotlib中rcParams使用方法
2021/01/05 Python
Vans荷兰官方网站:美国南加州的原创极限运动潮牌
2018/01/23 全球购物
navabi英国:设计师大码女装
2019/06/25 全球购物
Unix如何在一行中运行多个命令
2015/05/29 面试题
《巨人的花园》教学反思
2014/02/12 职场文书
运动会广播稿50字-100字
2014/10/11 职场文书
端午节活动总结报告
2015/02/11 职场文书
七一建党节慰问信
2015/02/14 职场文书
2015年迎新晚会策划书
2015/07/16 职场文书
致创业的您:这类人不适合餐饮创业
2019/08/19 职场文书
Python函数式编程中itertools模块详解
2021/09/15 Python