php实现的替换敏感字符串类实例
发布时间:2020-12-13 02:02:44 所属栏目:PHP教程 来源:网络整理
导读:《:php实现的替换敏感字符串类实例》要点: 本文介绍了:php实现的替换敏感字符串类实例,希望对您有用。如果有疑问,可以联系我们。 PHP教程 本篇章节讲解php实现的替换敏感字符串类及其用法,在php程序开发中有着非常广泛的应用价值.分享给大家供大家参
《:php实现的替换敏感字符串类实例》要点: PHP教程本篇章节讲解php实现的替换敏感字符串类及其用法,在php程序开发中有着非常广泛的应用价值.分享给大家供大家参考.具体办法如下: PHP教程StrFilter.class.php类文件如下: PHP教程
<?php
/** string filter class
* Date: 2013-01-09
* Author: fdipzone
* Ver: v1.0
*
* Func:
* public replace 替换非法字符
* public check 检查是否含有非法字符
* private protect_white_list 保护白名单
* private resume_white_list 还原白名单
* private getval 白名单 key转为value
*/
class StrFilter{ // class start
private $_white_list = array();
private $_black_list = array();
private $_replacement = '*';
private $_LTAG = '[[##';
private $_RTAG = '##]]';
/**
* @param Array $white_list
* @param Array $black_list
* @param String $replacement
*/
public function __construct($white_list=array(),$black_list=array(),$replacement='*'){
$this->_white_list = $white_list;
$this->_black_list = $black_list;
$this->_replacement = $replacement;
}
/** 替换非法字符
* @param String $content 要替Q的字符串
* @return String 替Q后的字符串
*/
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
?>
PHP教程demo示例如下: PHP教程
<?php
header("content-type:text/html;charset=utf8");
require("StrFilter.class.php");
$white = array('潘','曹操');
$black = array('','操');
$content = "我操,曹操你是潘,我拍惆";
$obj = new StrFilter($white,$black);
echo $obj->replace($content);
?>
PHP教程完整实例代码点击本站下载 PHP教程希望本文所述对大家php程序设计的学习有所赞助. 编程之家培训学院每天发布《:php实现的替换敏感字符串类实例》等实战技能,PHP、MYSQL、LINUX、APP、JS,CSS全面培养人才。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |