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 相关文章推荐
动态网站web开发 PHP、ASP还是ASP.NET
Oct 09 PHP
实例(Smarty+FCKeditor新闻系统)
Jan 02 PHP
探讨:使用XMLSerialize 序列化与反序列化
Jun 08 PHP
destoon安全设置中需要设置可写权限的目录及文件
Jun 21 PHP
PHP中array_map与array_column之间的关系分析
Aug 19 PHP
PHP中file_get_contents高?用法实例
Sep 24 PHP
PHP中substr函数字符串截取用法分析
Jan 07 PHP
PHP的Yii框架入门使用教程
Feb 15 PHP
Thinkphp和onethink实现微信支付插件
Apr 13 PHP
PHP实现的限制IP投票程序IP来源分析
May 04 PHP
PHP微信发送推送消息乱码的解决方法
Feb 28 PHP
深入理解PHP+Mysql分布式事务与解决方案
Dec 03 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
对squid中refresh_pattern的一些理解和建议
2009/04/17 PHP
php数组函数序列 之array_count_values() 统计数组中所有值出现的次数函数
2011/10/29 PHP
php中curl、fsocket、file_get_content三个函数的使用比较
2014/05/09 PHP
PHP制作图形验证码代码分享
2014/10/23 PHP
简单谈谈php浮点数精确运算
2016/03/10 PHP
Laravel 框架基于自带的用户系统实现登录注册及错误处理功能分析
2020/04/14 PHP
Javascript 类与静态类的实现
2010/04/01 Javascript
javascript数组去掉重复
2011/05/12 Javascript
很好用的js日历算法详细代码
2013/03/07 Javascript
总结JavaScript中布尔操作符||与&&的使用技巧
2015/11/17 Javascript
jQuery实现选中弹出窗口选择框内容后赋值给文本框的方法
2015/11/23 Javascript
jQuery ajax分页插件实例代码
2016/01/27 Javascript
jQuery height()、innerHeight()、outerHeight()函数的区别详解
2016/05/23 Javascript
js倒计时简单实现代码
2016/08/11 Javascript
jQuery插件easyUI实现通过JS显示Dialog的方法
2016/09/16 Javascript
表单元素值获取方式js及java方式的简单实例
2016/10/15 Javascript
Node.js  REPL (交互式解释器)实例详解
2017/08/06 Javascript
分享5个好用的javascript文件上传插件
2018/09/16 Javascript
详解在微信小程序的JS脚本中使用Promise来优化函数处理
2019/03/06 Javascript
jquery分页优化操作实例分析
2019/08/23 jQuery
layui table 列宽百分比显示的实现方法
2019/09/28 Javascript
解决vue+ element ui 表单验证有值但验证失败问题
2020/01/16 Javascript
原生js实现表格翻页和跳转
2020/09/29 Javascript
[55:39]DOTA2-DPC中国联赛 正赛 VG vs LBZS BO3 第二场 1月19日
2021/03/11 DOTA
Python3.6简单反射操作示例
2018/06/14 Python
python内存动态分配过程详解
2019/07/15 Python
python 中关于pycharm选择运行环境的问题
2020/10/31 Python
HTML5 文件域+FileReader 分段读取文件并上传到服务器
2017/10/23 HTML / CSS
Omio西班牙:全欧洲低价大巴、火车和航班搜索和比价
2017/02/11 全球购物
澳大利亚排名第一的儿童在线玩具商店:Toy Galaxy
2018/10/06 全球购物
大学生就业自荐信
2013/10/26 职场文书
公司财务人员岗位职责
2015/04/14 职场文书
安全温馨提示语大全
2015/07/14 职场文书
初三毕业感言
2015/07/31 职场文书
入党积极分子培养联系人意见
2015/08/12 职场文书
学法用法心得体会(2016推荐篇)
2016/01/21 职场文书