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 相关文章推荐
从一个不错的留言本弄的mysql数据库操作类
Sep 02 PHP
php中0,null,empty,空,false,字符串关系的详细介绍
Jun 20 PHP
浅析HTTP消息头网页缓存控制以及header常用指令介绍
Jun 28 PHP
PHP学习笔记(二) 了解PHP的基本语法以及目录结构
Aug 04 PHP
CodeIgniter框架URL路由总结
Sep 03 PHP
PHP常用的小程序代码段
Nov 14 PHP
PHP数据库操作Helper类完整实例
May 11 PHP
PHP7新特性foreach 修改示例介绍
Aug 26 PHP
php实现的mysqldb读写分离操作类示例
Feb 07 PHP
浅谈php中变量的数据类型判断函数
Mar 04 PHP
PHP 实现从数据库导出到.csv文件方法
Jul 06 PHP
RSA实现JS前端加密与PHP后端解密功能示例
Aug 05 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
php设计模式 Observer(观察者模式)
2011/06/26 PHP
PHP 多维数组的排序问题 根据二维数组中某个项排序
2011/11/09 PHP
解析获取优酷视频真实下载地址的PHP源代码
2013/06/26 PHP
前端必学之PHP语法基础
2016/01/01 PHP
php实现保存周期为1天的购物车类
2017/07/07 PHP
Iframe thickbox2.0使用的方法
2009/03/05 Javascript
基于jquery的放大镜效果
2012/05/30 Javascript
js解决弹窗问题实现班级跳转DIV示例
2014/01/06 Javascript
使用js检测浏览器是否支持html5中的video标签的方法
2014/03/12 Javascript
jQuery实现6位数字密码输入框
2016/12/29 Javascript
JavaScript中英文字符长度统计方法示例【按照中文占2个字符】
2017/01/17 Javascript
创建一般js对象的几种方式
2017/01/19 Javascript
js 颜色选择插件
2017/01/23 Javascript
jQuery基于Ajax方式提交表单功能示例
2017/02/10 Javascript
深入理解Webpack 中路径的配置
2017/06/17 Javascript
vue使用echarts图表的详细方法
2018/10/22 Javascript
vue实现直播间点赞飘心效果的示例代码
2019/09/20 Javascript
[01:15:36]加油刀塔第二期网络版
2014/08/09 DOTA
python发送HTTP请求的方法小结
2015/07/08 Python
python RC4加密操作示例【测试可用】
2019/09/26 Python
如何在python中写hive脚本
2019/11/08 Python
python 求10个数的平均数实例
2019/12/16 Python
自学python用什么系统好
2020/06/23 Python
劲霸男装广告词
2014/03/21 职场文书
《长城和运河》教学反思
2014/04/14 职场文书
十佳家长事迹材料
2014/08/26 职场文书
国家税务局干部作风整顿整改措施
2014/09/18 职场文书
2015个人半年总结范文
2015/03/09 职场文书
生死牛玉儒观后感
2015/06/11 职场文书
银行中层干部培训心得体会
2016/01/11 职场文书
关于golang高并发的实现与注意事项说明
2021/05/08 Golang
opencv-python图像配准(匹配和叠加)的实现
2021/06/23 Python
天谕手游15杯全调酒配方和调酒券的获得方式
2022/04/06 其他游戏
Java中Dijkstra(迪杰斯特拉)算法
2022/05/20 Java/Android
关于pytest结合csv模块实现csv格式的数据驱动问题
2022/05/30 Python
蓝牙耳机怎么连接电脑win11? Win11蓝牙耳机连接电脑的技巧
2023/01/09 数码科技