本文实例讲述了php实现的替换敏感字符串类及其用法,在php程序开发中有着非常广泛的应用价值。分享给大家供大家参考。具体方法如下:

StrFilter.class.php类文件如下:

_white_list = $white_list;

$this->_black_list = $black_list;

$this->_replacement = $replacement;

}

/** 替换非法字符

* @param String $content 要替換的字符串

* @return String 替換后的字符串

*/

public function replace($content){

if(!isset($content) || $content==''){

return '';

}

// protect white list

$content = $this->protect_white_list($content);

// replace black list

if($this->_black_list){

foreach($this->_black_list as $val){

$content = str_replace($val, $this->_replacement, $content);

}

}

// resume white list

$content = $this->resume_white_list($content);

return $content;

}

/** 检查是否含有非法自符

* @param String $content 字符串

* @return boolean

*/

public function check($content){

if(!isset($content) || $content==''){

return true;

}

// protect white list

$content = $this->protect_white_list($content);

// check

if($this->_black_list){

foreach($this->_black_list as $val){

if(strstr($content, $val)!=''){

return false;

}

}

}

return true;

}

/** 保护白名单

* @param String $content 字符串

* @return String

*/

private function protect_white_list($content){

if($this->_white_list){

foreach($this->_white_list as $key=>$val){

$content = str_replace($val, $this->_LTAG.$key.$this->_RTAG, $content);

}

}

return $content;

}

/** 还原白名单

* @param String $content

* @return String

*/

private function resume_white_list($content){

if($this->_white_list){

$content = preg_replace_callback("/\[\[##(.*?)##\]\].*?/si", array($this, 'getval'), $content);

}

return $content;

}

/** 白名单 key还原为value

* @param Array $matches 匹配white_list的key

* @return String white_list val

*/

private function getval($matches){

return isset($this->_white_list[$matches[1]])? $this->_white_list[$matches[1]] : ''; // key->val

}

} // class end

?>

demo示例如下:

replace($content);

?>

完整实例代码点击本站下载

希望本文所述对大家php程序设计的学习有所帮助。

php如何一篇文章替换敏感字,php实现的替换敏感字符串类实例相关推荐

  1. python敏感字替换_python用类实现文章敏感词的过滤方法示例

    过滤一遍并将敏感词替换之后剩余字符串中新组成了敏感词语,这种情况就要用递归来解决,直到过滤替换之后的结果和过滤之前一样时才算结束 第一步:建立一个敏感词库(.txt文本) 第二步:编写代码在文章中过滤 ...

  2. 2.3W字,这可能是把Nginx讲得最全面的一篇文章了,建议收藏备用

    前言 Nginx 概述 Nginx 特点 Nginx 作用 Nginx 安装 Nginx 常用命令 Nginx 核心配置 配置文件结构 配置文件 main 段核心参数 配置文件 events 段核心参 ...

  3. 敏感字检测or替换,并可以限定字符串长度

    大概测试了一下,效率还算可以的,. 用到了log4net这个包做debug,不用的删掉就行. using log4net; using System; using System.Collections ...

  4. 一篇文章掌握整个JVM,JVM超详细解析!!!

    JVM 先想想一些问题 1 我们开发人员编写的Java代码是怎么让电脑认识的 2 为什么说java是跨平台语言 3 Jdk和Jre和JVM的区别 4 为什么要学习JVM 深入学习JVM 1 JVM运行 ...

  5. 干货!一篇文章集合所有Linux基础命令,适合所有菜鸟学习和老手回顾!

    阿里云   干货!一篇文章集合所有Linux基础命令,适合所有菜鸟学习和老手回顾! 1 文件{ ls -rtl # 按时间倒叙列出所有目录和文件 ll -rt touch file # 创建空白文件 ...

  6. 超硬核!!!一篇文章掌握整个JVM,JVM超详细解析!!!

    JVM 先想想一些问题 1 我们开发人员编写的Java代码是怎么让电脑认识的 2 为什么说java是跨平台语言 3 Jdk和Jre和JVM的区别 4 为什么要学习JVM 深入学习JVM 1 JVM运行 ...

  7. 一篇文章带你深入理解漏洞之 XXE 漏洞

    目录 一.XXE 是什么 二.简单介绍一下背景知识: 三.基础知识 重点来了: 四.我们能做什么 实验一:有回显读本地敏感文件(Normal XXE) 新的问题出现 新的解决方法 实验二:无回显读取本 ...

  8. 一篇文章看懂makefile编写规则

    该篇文章为转载,是对原作者系列文章的总汇加上标注. 支持原创,请移步陈浩大神博客:(最原始版本) http://blog.csdn.net/haoel/article/details/2886 我转自 ...

  9. 一篇文章带你详解 TCP/IP 协议(下)

    前面的第一二三章已在上篇讲解,还没看过的可以先看看:一篇文章带你详解 TCP/IP 协议(上) 本文继续讲解第四章. 四.网络层中的 IP 协议 IP(IPv4.IPv6)相当于 OSI 参考模型中的 ...

最新文章

  1. 图数据库Neo4j简介
  2. 深入理解信号槽(二)
  3. Hadoop MapReduce的一些相关代码Code
  4. 【转贴】爱是莲花,最美的是清苦的莲心
  5. linux 分区 格式化 挂载 新硬盘
  6. hdu 2648 Shopping
  7. java题-如何递归遍历一个文件夹下的所有文件
  8. 彻底理解被称为二叉树神级遍历的莫里斯(Morris)算法
  9. 带着canvas去流浪系列之六 绘制雷达图
  10. 深入理解定时器系列第三篇——定时器应用(时钟、倒计时、秒表和闹钟)
  11. 键盘上在方向键上面的9个键是干什么的?
  12. TechNet 晒文 - Windows 7 系列汇总
  13. [转载] 深层复制构造函数和浅层复制构造函数区别
  14. 数据结构(C语言版)严蔚敏李冬梅(第2版)课后习题答案
  15. FIORI静态磁贴配置
  16. 手机淘宝app、xsign签名算法
  17. 实时查看MD文件效果 - 在线Markdown预览
  18. 不逼自己一把,命运就会逼你一辈子
  19. 网易云的特色与优势?|网易云
  20. Arcgis利用dem数据生成等高线

热门文章

  1. 《Redis设计与实现》阅读笔记(二)--简单动态字符串
  2. Android Studio Intent使用(显式、隐式)
  3. react学习笔记(二)编写第一个react组件
  4. 二叉树的前序中序后序遍历(当然是非递归的!)
  5. oracle em 乱码问题
  6. 投入千亿的菜鸟网络智慧物流做得怎么样?
  7. IMAX融资5000万美元,三年内要打造25个VR项目
  8. C#/VB.NET 给Word文档添加/撤销书签
  9. 开源人脸识别seetaface入门教程(一)
  10. Log4j源代码学习