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 FPDF类库应用实现代码
Mar 20 PHP
apache php模块整合操作指南
Nov 16 PHP
用PHP编写和读取XML的几种方式
Jan 12 PHP
php魔术方法与魔术变量、内置方法与内置变量的深入分析
Jun 03 PHP
php代码书写习惯优化小结
Jun 20 PHP
php中如何判断一个网页请求是ajax请求还是普通请求
Aug 10 PHP
smarty模板引擎之内建函数用法
Mar 30 PHP
php获取flash尺寸详细数据的方法
Nov 12 PHP
PHP获取指定日期是星期几的实现方法
Nov 30 PHP
PHP验证码类ValidateCode解析
Jan 07 PHP
CI(CodeIgniter)框架实现图片上传的方法
Mar 24 PHP
strpos() 函数判断字符串中是否包含某字符串的方法
Jan 16 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中实现中文字符进制转换原理分析
2011/12/06 PHP
php数据库配置文件一般做法分享
2012/07/07 PHP
php中删除数组的第一个元素和最后一个元素的函数
2015/03/07 PHP
PHP一致性hash分布式算法封装类定义与用法示例
2018/08/04 PHP
php array_map()函数实例用法
2021/03/03 PHP
Js与下拉列表处理问题解决
2014/02/13 Javascript
node.js中的path.isAbsolute方法使用说明
2014/12/08 Javascript
JS实现生成会变大变小的圆环实例
2015/08/05 Javascript
整理Javascript事件响应学习笔记
2015/12/02 Javascript
在其他地方你学不到的jQuery小贴士和技巧(欢迎收藏)
2016/01/20 Javascript
jQuery实现table中的tr上下移动并保持序号不变的实例代码
2016/07/11 Javascript
mvc中form表单提交的三种方式(推荐)
2016/08/10 Javascript
jquery 实现复选框的全选操作实例代码
2017/01/24 Javascript
vue.js 中使用(...)运算符报错的解决方法
2018/08/09 Javascript
Vue实现用户自定义字段显示数据的方法
2018/08/28 Javascript
jQuery实现上下滚动公告栏详细代码
2018/11/21 jQuery
mysql 之通过配置文件链接数据库
2017/08/12 Python
100行Python代码实现自动抢火车票(附源码)
2018/01/11 Python
Flask框架使用DBUtils模块连接数据库操作示例
2018/07/20 Python
python scp 批量同步文件的实现方法
2019/01/03 Python
利用python实现AR教程
2019/11/20 Python
Python标准库itertools的使用方法
2020/01/17 Python
为什么相对PHP黑python的更少
2020/06/21 Python
中英文自我评价语句
2013/12/20 职场文书
单位成立周年感言
2014/01/26 职场文书
小学科学教学反思
2014/01/26 职场文书
培训自我鉴定
2014/01/31 职场文书
四年级科学教学反思
2014/02/10 职场文书
小学生美德少年事迹材料
2014/08/24 职场文书
倡议书作文
2015/01/19 职场文书
2015年老干部工作总结
2015/04/23 职场文书
工作收入证明范本
2015/06/12 职场文书
贷款工资证明范本
2015/06/12 职场文书
离婚起诉书范文2016
2015/11/26 职场文书
导游词之桂林山水
2019/09/20 职场文书
详解Python描述符的工作原理
2021/06/11 Python