php如何一篇文章替换敏感字,php实现的替换敏感字符串类实例
本文实例讲述了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实现的替换敏感字符串类实例相关推荐
- python敏感字替换_python用类实现文章敏感词的过滤方法示例
过滤一遍并将敏感词替换之后剩余字符串中新组成了敏感词语,这种情况就要用递归来解决,直到过滤替换之后的结果和过滤之前一样时才算结束 第一步:建立一个敏感词库(.txt文本) 第二步:编写代码在文章中过滤 ...
- 2.3W字,这可能是把Nginx讲得最全面的一篇文章了,建议收藏备用
前言 Nginx 概述 Nginx 特点 Nginx 作用 Nginx 安装 Nginx 常用命令 Nginx 核心配置 配置文件结构 配置文件 main 段核心参数 配置文件 events 段核心参 ...
- 敏感字检测or替换,并可以限定字符串长度
大概测试了一下,效率还算可以的,. 用到了log4net这个包做debug,不用的删掉就行. using log4net; using System; using System.Collections ...
- 一篇文章掌握整个JVM,JVM超详细解析!!!
JVM 先想想一些问题 1 我们开发人员编写的Java代码是怎么让电脑认识的 2 为什么说java是跨平台语言 3 Jdk和Jre和JVM的区别 4 为什么要学习JVM 深入学习JVM 1 JVM运行 ...
- 干货!一篇文章集合所有Linux基础命令,适合所有菜鸟学习和老手回顾!
阿里云 干货!一篇文章集合所有Linux基础命令,适合所有菜鸟学习和老手回顾! 1 文件{ ls -rtl # 按时间倒叙列出所有目录和文件 ll -rt touch file # 创建空白文件 ...
- 超硬核!!!一篇文章掌握整个JVM,JVM超详细解析!!!
JVM 先想想一些问题 1 我们开发人员编写的Java代码是怎么让电脑认识的 2 为什么说java是跨平台语言 3 Jdk和Jre和JVM的区别 4 为什么要学习JVM 深入学习JVM 1 JVM运行 ...
- 一篇文章带你深入理解漏洞之 XXE 漏洞
目录 一.XXE 是什么 二.简单介绍一下背景知识: 三.基础知识 重点来了: 四.我们能做什么 实验一:有回显读本地敏感文件(Normal XXE) 新的问题出现 新的解决方法 实验二:无回显读取本 ...
- 一篇文章看懂makefile编写规则
该篇文章为转载,是对原作者系列文章的总汇加上标注. 支持原创,请移步陈浩大神博客:(最原始版本) http://blog.csdn.net/haoel/article/details/2886 我转自 ...
- 一篇文章带你详解 TCP/IP 协议(下)
前面的第一二三章已在上篇讲解,还没看过的可以先看看:一篇文章带你详解 TCP/IP 协议(上) 本文继续讲解第四章. 四.网络层中的 IP 协议 IP(IPv4.IPv6)相当于 OSI 参考模型中的 ...
最新文章
- 图数据库Neo4j简介
- 深入理解信号槽(二)
- Hadoop MapReduce的一些相关代码Code
- 【转贴】爱是莲花,最美的是清苦的莲心
- linux 分区 格式化 挂载 新硬盘
- hdu 2648 Shopping
- java题-如何递归遍历一个文件夹下的所有文件
- 彻底理解被称为二叉树神级遍历的莫里斯(Morris)算法
- 带着canvas去流浪系列之六 绘制雷达图
- 深入理解定时器系列第三篇——定时器应用(时钟、倒计时、秒表和闹钟)
- 键盘上在方向键上面的9个键是干什么的?
- TechNet 晒文 - Windows 7 系列汇总
- [转载] 深层复制构造函数和浅层复制构造函数区别
- 数据结构(C语言版)严蔚敏李冬梅(第2版)课后习题答案
- FIORI静态磁贴配置
- 手机淘宝app、xsign签名算法
- 实时查看MD文件效果 - 在线Markdown预览
- 不逼自己一把,命运就会逼你一辈子
- 网易云的特色与优势?|网易云
- Arcgis利用dem数据生成等高线