php实现的替换敏感字符串类实例
本文实例讲述了php实现的替换敏感字符串类及其用法,在php程序开发中有着非常广泛的应用价值。分享给大家供大家参考。具体方法如下:
StrFilter.class.php类文件如下:
<?php /**stringfilterclass *Date:2013-01-09 *Author:fdipzone *Ver:v1.0 * *Func: *publicreplace替换非法字符 *publiccheck检查是否含有非法字符 *privateprotect_white_list保护白名单 *privateresume_white_list还原白名单 *privategetval白名单key转为value */ classStrFilter{//classstart private$_white_list=array(); private$_black_list=array(); private$_replacement='*'; private$_LTAG='[[##'; private$_RTAG='##]]'; /** *@paramArray$white_list *@paramArray$black_list *@paramString$replacement */ publicfunction__construct($white_list=array(),$black_list=array(),$replacement='*'){ $this->_white_list=$white_list; $this->_black_list=$black_list; $this->_replacement=$replacement; } /**替换非法字符 *@paramString$content要替換的字符串 *@returnString替換后的字符串 */ publicfunctionreplace($content){ if(!isset($content)||$content==''){ return''; } //protectwhitelist $content=$this->protect_white_list($content); //replaceblacklist if($this->_black_list){ foreach($this->_black_listas$val){ $content=str_replace($val,$this->_replacement,$content); } } //resumewhitelist $content=$this->resume_white_list($content); return$content; } /**检查是否含有非法自符 *@paramString$content字符串 *@returnboolean */ publicfunctioncheck($content){ if(!isset($content)||$content==''){ returntrue; } //protectwhitelist $content=$this->protect_white_list($content); //check if($this->_black_list){ foreach($this->_black_listas$val){ if(strstr($content,$val)!=''){ returnfalse; } } } returntrue; } /**保护白名单 *@paramString$content字符串 *@returnString */ privatefunctionprotect_white_list($content){ if($this->_white_list){ foreach($this->_white_listas$key=>$val){ $content=str_replace($val,$this->_LTAG.$key.$this->_RTAG,$content); } } return$content; } /**还原白名单 *@paramString$content *@returnString */ privatefunctionresume_white_list($content){ if($this->_white_list){ $content=preg_replace_callback("/\[\[##(.*?)##\]\].*?/si",array($this,'getval'),$content); } return$content; } /**白名单key还原为value *@paramArray$matches匹配white_list的key *@returnStringwhite_listval */ privatefunctiongetval($matches){ returnisset($this->_white_list[$matches[1]])?$this->_white_list[$matches[1]]:'';//key->val } }//classend ?>
demo示例如下:
<?php header("content-type:text/html;charset=utf8"); require("StrFilter.class.php"); $white=array('屌丝','曹操'); $black=array('屌','操'); $content="我操,曹操你是屌丝,我屌你啊"; $obj=newStrFilter($white,$black); echo$obj->replace($content); ?>
完整实例代码点击本站下载
希望本文所述对大家php程序设计的学习有所帮助。