ucenter中词语过滤原理分析

 更新时间:2016年07月13日 09:17:35   作者:dreamzml  
这篇文章主要介绍了ucenter中词语过滤原理,结合实例形式分析了ucenter中词语的相关sql字段定义与过滤功能的实现方法,涉及php正则替换及字符串与数组的相关操作技巧,需要的朋友可以参考下

本文分析了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运算与运算符用法总结》、《PHP网络编程技巧总结》、《PHP基本语法入门教程》、《php面向对象程序设计入门教程》、《PHP数组(Array)操作技巧大全》、《php字符串(string)用法总结》、《php+mysql数据库操作入门教程》及《php常见数据库操作技巧汇总

希望本文所述对大家PHP程序设计有所帮助。

相关文章

  • linux下为php添加curl扩展的方法

    linux下为php添加curl扩展的方法

    一般php源码的扩展库里已经带了curl的扩展,所以没有必要下载,直接将编译扩展即可
    2011-07-07
  • PHP实现的微信公众号扫码模拟登录功能示例

    PHP实现的微信公众号扫码模拟登录功能示例

    这篇文章主要介绍了PHP实现的微信公众号扫码模拟登录功能,涉及php针对微信公众平台接口的调用与交互相关操作技巧,需要的朋友可以参考下
    2019-05-05
  • php调用KyotoTycoon简单实例

    php调用KyotoTycoon简单实例

    这篇文章主要介绍了php调用KyotoTycoon简单实例,涉及php调用KyotoTycoon的简单使用方法,具有一定参考借鉴价值,需要的朋友可以参考下
    2015-04-04
  • php批量转换文件夹下所有文件编码的函数类

    php批量转换文件夹下所有文件编码的函数类

    分享一个php转换文件夹下所有文件编码函数类,适合发布网站的其他编码版本,比如你有一个GBK版本 你想有一个UTF8版本 或者你只有GBK的源码 你想二次开发 但是你不想改变IDE的编码方式 你可以用这个程序将其批量转化为UTF8
    2017-08-08
  • php计算两个文件相对路径的方法

    php计算两个文件相对路径的方法

    这篇文章主要介绍了php计算两个文件相对路径的方法,涉及php操作字符串的技巧,具有一定参考借鉴价值,需要的朋友可以参考下
    2015-03-03
  • php实现文章置顶功能的方法

    php实现文章置顶功能的方法

    这篇文章主要介绍了php实现文章置顶功能的方法,结合实例形式分析了php置顶功能的操作步骤与相关实现技巧,需要的朋友可以参考下
    2016-10-10
  • php+mysql实现的无限分类方法类定义与使用示例

    php+mysql实现的无限分类方法类定义与使用示例

    这篇文章主要介绍了php+mysql实现的无限分类方法类定义与使用,结合实例形式分析了php+mysql无限分类方法类基本定义与使用方法,需要的朋友可以参考下
    2020-05-05
  • PHP Session_Regenerate_ID函数双释放内存破坏漏洞

    PHP Session_Regenerate_ID函数双释放内存破坏漏洞

    PHP Session_Regenerate_ID函数存在双释放内容破坏问题,远程攻击者可利用此漏洞对应用程序进行拒绝服务攻击,可能导致任意指令执行。
    2011-01-01
  • PHPEXCEL 使用小记

    PHPEXCEL 使用小记

    下面的文章主要是介绍基于PHPEXCEL实现的一些excel的操作实现代码,需要的朋友可以参考下
    2013-01-01
  • php版银联支付接口开发简明教程

    php版银联支付接口开发简明教程

    这篇文章主要介绍了php版银联支付接口开发的方法,结合实例形式分析了php银联支付接口开发的具体流程与相关操作技巧,需要的朋友可以参考下
    2016-10-10

最新评论