Welcome 微信登录

首页 / 网页编程 / PHP / 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 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示例如下:
<?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程序设计的学习有所帮助。