gpt4 book ai didi

php实现的替换敏感字符串类实例

转载 作者:qq735679552 更新时间:2022-09-29 22:32:09 31 4
gpt4 key购买 nike

CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.

这篇CFSDN的博客文章php实现的替换敏感字符串类实例由作者收集整理,如果你对这篇文章有兴趣,记得点赞哟.

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

StrFilter.class.php类文件如下:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
<?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 要替換的字符串
   * @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示例如下:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
<?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实现的替换敏感字符串类实例的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com