php 替换敏感字符串的类(附源码)
Freigeben: 2016-07-25 08:55:24
Original
1102 Leute haben es durchsucht
-
-
/** string filter class
- * Date: 2013-01-09
- * Author: fdipzone
- * Ver: v1.0
- * Edit: bbs.it-home.org
- * 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 要替換的字符串
- * @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
-
- ?>
复制代码
2,演示示例 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 替换敏感字符串的类源码下载地址。
|
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
-
2024-10-22 09:46:29
-
2024-10-13 13:53:41
-
2024-10-12 12:15:51
-
2024-10-11 22:47:31
-
2024-10-11 19:36:51
-
2024-10-11 15:50:41
-
2024-10-11 15:07:41
-
2024-10-11 14:21:21
-
2024-10-11 12:59:11
-
2024-10-11 12:17:31