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的FTP学习(二)[转自奥索]
Oct 09 PHP
php下载远程文件类(支持断点续传)
Nov 14 PHP
PHP 无限分类三种方式 非函数的递归调用!
Aug 26 PHP
php过滤表单提交的html等危险代码
Nov 03 PHP
PHP解析目录路径的3个函数总结
Nov 18 PHP
微信access_token的获取开发示例
Apr 16 PHP
CodeIgniter控制器之业务逻辑实例分析
Jan 20 PHP
Yii针对添加行的增删改查操作示例
Oct 18 PHP
PHP图像识别技术原理与实现
Oct 27 PHP
PHP精确计算功能示例
Nov 29 PHP
php给数组赋值的实例方法
Sep 26 PHP
PHP常用函数之base64图片上传功能详解
Oct 21 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版(3)
2006/10/09 PHP
php面向对象全攻略 (十一)__toString()用法 克隆对象 __call处理调用错误
2009/09/30 PHP
CURL的学习和应用(附多线程实现)
2013/06/03 PHP
JavaScript中的prototype使用说明
2010/04/13 Javascript
jquery根据属性和index来查找属性值并操作
2014/07/25 Javascript
JavaScript中的数组特性介绍
2014/12/30 Javascript
JS运动基础框架实例分析
2015/03/03 Javascript
Angular Js文件上传之form-data
2015/08/28 Javascript
js简单判断移动端系统的方法
2016/02/25 Javascript
jquery实现下拉框功能效果【实例代码】
2016/05/06 Javascript
详解vue-cli快速构建项目以及引入bootstrap、jq
2017/05/26 Javascript
jQuery实现菜单栏导航效果
2017/08/15 jQuery
vue实现a标签点击高亮方法
2018/03/17 Javascript
js对象数组和对象的使用实例详解
2019/08/27 Javascript
微信小程序加载机制及运行机制图解
2019/11/27 Javascript
解决vant中 tab栏遇到的坑 van-tabs
2020/11/04 Javascript
[01:10:49]Secret vs VGJ.S 2018国际邀请赛淘汰赛BO3 第二场 8.24
2018/08/25 DOTA
Python实现Logger打印功能的方法详解
2017/09/01 Python
Python爬虫实例_利用百度地图API批量获取城市所有的POI点
2018/01/10 Python
Python之csv文件从MySQL数据库导入导出的方法
2018/06/21 Python
详解Django的model查询操作与查询性能优化
2018/10/16 Python
python xpath获取页面注释的方法
2019/01/14 Python
Django 创建后台,配置sqlite3教程
2019/11/18 Python
flask实现验证码并验证功能
2019/12/05 Python
使用tqdm显示Python代码执行进度功能
2019/12/08 Python
通过实例解析Python调用json模块
2019/12/11 Python
Python爬虫实例——爬取美团美食数据
2020/07/15 Python
美国校服网上商店:French Toast
2019/10/08 全球购物
数据库什么时候应该被重组
2012/11/02 面试题
详解如何解决使用JSON.stringify时遇到的循环引用问题
2021/03/23 Javascript
十八届三中全会学习方案
2014/02/16 职场文书
小学生操行评语大全
2014/04/22 职场文书
铅球加油稿100字
2014/09/26 职场文书
运动会表扬稿范文
2015/05/05 职场文书
演讲开场白台词大全
2015/05/29 职场文书
2015年市场营销工作总结
2015/07/23 职场文书