- 隐藏姓名
/**
* 只保留字符串首尾字符,隐藏中间用*代替(两个字符时只显示第一个)
* @param string $user_name 姓名
* @param string $repeatStr 替换的字符
* @param string $encode 字符编码
* @return string 格式化后的姓名
*/
public function userNameCut($user_name, $repeatStr = '*', $encode = 'utf-8')
{
if (empty($user_name)) {
return '***';
}
$length = mb_strlen($user_name,$encode);
$firstStr = mb_substr($user_name, 0, 1, $encode);
$lastStr = mb_substr($user_name, -1, 1, $encode);
return $length == 2 ? $firstStr . str_repeat($repeatStr, $length - 1) : $firstStr . str_repeat($repeatStr, $length - 2) . $lastStr;
}
- 隐藏中间内容
/**
* 只保留字符串前四位和后四位
* @param $str
* @return string
*/
public function cardNoCut($str)
{
if (empty($str)) {
return '***';
}
$length = strlen($str);
$front = substr($str, 0, 4);
$back = substr($str, -4, 4);
return $length == 16 ? $front . str_repeat('*', $length - 8) . $back : $front . str_repeat('*', $length - 8) . $back;
}