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 相关文章推荐
967 个函式
Oct 09 PHP
PHP中simplexml_load_string函数使用说明
Jan 01 PHP
php中的注释、变量、数组、常量、函数应用介绍
Nov 16 PHP
使用Apache的htaccess防止图片被盗链的解决方法
Apr 27 PHP
PHP的拦截器实例分析
Nov 03 PHP
php根据日期显示所在星座的方法
Jul 13 PHP
PHP标准类(stdclass)用法示例
Sep 28 PHP
ThinkPHP 3.2.2实现事务操作的方法
May 05 PHP
thinkphp 验证码 的使用小结
May 07 PHP
php面向对象的用户登录身份验证
Jun 08 PHP
php伪静态验证码不显示的解决方案
Sep 26 PHP
php 原生分页
Apr 01 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生成WAP页面
2006/10/09 PHP
PHP5中实现多态的两种方法实例分享
2014/04/21 PHP
nginx+thinkphp下解决不支持pathinfo模式
2015/07/01 PHP
将HTML格式的String转化为HTMLElement的实现方法
2014/08/07 Javascript
CSS+JS实现点击文字弹出定时自动关闭DIV层菜单的方法
2015/05/12 Javascript
详解JavaScript基于面向对象之继承实例
2015/12/16 Javascript
JS原型对象的创建方法详解
2016/06/16 Javascript
全面解析JS字符串和正则表达式中的match、replace、exec等函数
2016/07/01 Javascript
简单实现js轮播图效果
2017/07/14 Javascript
jQuery中.attr()和.data()的区别分析
2017/09/03 jQuery
微信小程序实现列表下拉刷新上拉加载
2020/07/29 Javascript
Vue 中axios配置实例详解
2018/07/27 Javascript
JavaScript常见事件处理程序实例总结
2019/01/05 Javascript
使用 webpack 插件自动生成 vue 路由文件的方法
2019/08/20 Javascript
Vue中消息横向滚动时setInterval清不掉的问题及解决方法
2019/08/23 Javascript
vue移动端的左右滑动事件详解
2020/06/17 Javascript
[01:17]辉夜杯战队访谈宣传片—EHOME
2015/12/25 DOTA
Python的string模块中的Template类字符串模板用法
2016/06/27 Python
浅谈Python中的zip()与*zip()函数详解
2018/02/24 Python
python单例模式实例解析
2018/08/28 Python
Python面向对象思想与应用入门教程【类与对象】
2019/04/12 Python
Python的几种主动结束程序方式
2019/11/22 Python
Django之choices选项和富文本编辑器的使用详解
2020/04/01 Python
jupyter lab文件导出/下载方式
2020/04/22 Python
ProBikeKit澳大利亚:自行车套件,跑步和铁人三项装备
2016/11/30 全球购物
Evisu官方网站:日本牛仔品牌,时尚街头设计风格
2016/12/30 全球购物
旅游管理本科生求职信
2013/10/14 职场文书
播音主持女孩的自我评价分享
2013/11/20 职场文书
会议邀请函范文
2014/01/09 职场文书
中国好声音华少广告词
2014/03/17 职场文书
奥巴马就职演讲稿
2014/05/15 职场文书
2014教师专业技术工作总结
2014/12/03 职场文书
学习委员竞选稿
2015/11/20 职场文书
2016年12月份红领巾广播稿
2015/12/21 职场文书
思想品德课教学反思
2016/02/24 职场文书
Java中多线程下载图片并压缩能提高效率吗
2021/07/01 Java/Android