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 表单验证实现代码
Mar 10 PHP
PHP中foreach循环中使用引用要注意的地方
Jan 02 PHP
php中将图片gif,jpg或mysql longblob或blob字段值转换成16进制字符串
Aug 23 PHP
将博客园(cnblogs.com)数据导入到wordpress的代码
Jan 06 PHP
使用php记录用户通过搜索引擎进网站的关键词
Feb 13 PHP
php+ajax导入大数据时产生的问题处理
Jun 11 PHP
PHP获取文件的MD5值并判断是否被修改的例子
Jun 19 PHP
php图形jpgraph操作实例分析
Feb 22 PHP
php 静态属性和静态方法区别详解
Apr 09 PHP
php自定义函数实现统计中文字符串长度的方法小结
Apr 15 PHP
PHP赋值的内部是如何跑的详解
Jan 13 PHP
PHP实现单例模式建立数据库连接的方法分析
Feb 11 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
德劲1107的电路分析与打磨
2021/03/02 无线电
PHP动态编译出现Cannot find autoconf的解决方法
2014/11/05 PHP
PHP 数组遍历foreach语法结构及实例
2016/06/13 PHP
ThinkPHP打水印及设置水印位置的方法
2016/10/14 PHP
PHP 判断字符串是中文还是英文, 或者是中英混合
2021/03/09 PHP
jquery offset函数应用实例
2012/11/14 Javascript
JavaScript中函数(Function)的apply与call理解
2015/07/08 Javascript
Javascript实现图片不间断滚动的代码
2016/06/22 Javascript
微信小程序学习(4)-系统配置app.json详解
2017/01/12 Javascript
微信小程序图片选择、上传到服务器、预览(PHP)实现实例
2017/05/11 Javascript
vue-cli构建项目使用 less的方法
2017/10/04 Javascript
Vue v2.5 调整和更新不完全问题
2017/10/24 Javascript
基于layui实现高级搜索(筛选)功能
2019/07/26 Javascript
python zip文件 压缩
2008/12/24 Python
python 正则表达式 概述及常用字符
2009/05/04 Python
centos 安装python3.6环境并配置虚拟环境的详细教程
2018/02/22 Python
python sys.argv[]用法实例详解
2018/05/25 Python
Python实现字典(dict)的迭代操作示例
2018/06/05 Python
Python OpenCV处理图像之图像像素点操作
2018/07/10 Python
wxPython的安装与使用教程
2018/08/31 Python
对python中的try、except、finally 执行顺序详解
2019/02/18 Python
Python  Django 母版和继承解析
2019/08/09 Python
浅谈Python程序的错误:变量未定义
2020/06/02 Python
python 实现图像快速替换某种颜色
2020/06/04 Python
如何真正的了解python装饰器
2020/08/14 Python
python用Configobj模块读取配置文件
2020/09/26 Python
image-set实现Retina屏幕下图片显示详细介绍
2012/12/24 HTML / CSS
官方授权图形T恤和服装:Fifth Sun
2019/06/12 全球购物
Chinti & Parker官网:奢华羊绒女装和创新针织设计
2021/01/01 全球购物
举例说明类变量和实例变量的区别
2016/06/30 面试题
超级搞笑检讨书
2014/01/15 职场文书
激情洋溢的毕业生就业求职信
2014/03/15 职场文书
黄金酒广告词
2014/03/21 职场文书
报表员工作失误检讨书范文
2014/09/19 职场文书
大学生违纪检讨书300字
2014/10/25 职场文书
酒吧七夕情人节宣传语
2015/11/24 职场文书