这篇文章主要介绍了php实现的替换敏感字符串类,包括了常见的非法字符串检测、白名单、黑名单及字符替换等功能,非常实用,需要的朋友可以参考下

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

StrFilter.class.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 startprivate $_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 要替換的字符串* @return String替換后的字符串*/public function replace($content){if(!isset($content) || $content==''){return '';}// protect white list$content = $this->protect_white_list($content);// replace black listif($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);// checkif($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示例如下:

<?phpheader("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程序设计的学习有所帮助。

09-15 20:30