php 字符串脱敏处理

/*** @static  dataDesensitization.* 字符串脱敏处理** @param  string  $string  需要处理的字符串* @param  int|string  $start  脱敏开始字符串或者开始位置* @param  int|string  $length  脱敏长度* @param  string  $re  长度一位的情况则根据脱敏长度去替换,长度大于一位则不论脱敏长度多少都替换成给入的值** @return string** author: liuml*/function dataDesensitization(string $string, $start = 0, $length = -1, string $re = '*'): string{if (empty($string)) {return '';}if (is_string($start)) {$start = mb_strpos($string, $start);}if (is_string($length)) {$length = mb_strpos($string, $length) - $start;// 防止此类极端情况:(dataDesensitization('aa@qq.com', 3, '@', '******')  output:// aa@******@qq.com)// 此处<0的情况需另外处理,将start参数重置为1 重置后 output:// a******@qq.comif ($length < 0) {$length = $length + $start - 1;$start = 1;}}$str = mb_substr($string, 0, $start);$strBengin = mb_substr($string, $start + $length);if (mb_strlen($re) === 1) {$re = str_pad($re, $length, $re);}return $str . $re . $strBengin;}


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部