1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859 |
- <?php
- namespace app\common\library;
- use think\Hook;
- use think\Config;
- class Keyworld
- {
-
- public static function sensitive($string){
- $count = 0;
- $sensitiveWord = '';
- $stringAfter = $string;
- $list = config('keyworld');
- $pattern = "/".implode("|",$list)."/i";
- if(preg_match_all($pattern, $string, $matches)){
- $patternList = $matches[0];
- $count = count($patternList);
-
-
- $replace_arr = [1=>'*',2=>'**',3=>'***',4=>'****',5=>'*****','more'=>'*****...',];
- $replaceArray = [];
- foreach($patternList as $key => $val){
- $replaceArray[$val] = isset($replace_arr[mb_strlen($val)]) ? $replace_arr[mb_strlen($val)] : $replace_arr['more'];
- }
- $stringAfter = strtr($string, $replaceArray);
- }
-
- return $stringAfter;
- }
- public static function checkAction($data,$fields){
-
- foreach($data as $key => $string){
- if(in_array($key,$fields)){
- $data[$key] = self::sensitive($string);
- }
- }
- return $data;
- }
- }
|