php如何实现姓名后两位显示**,除了第一个字,其余都是*方法

浏览1221

在做一些活动项目,需要显示参与者或用户,我们会考虑不显示整个参与用户姓名,该怎么实现呢,以下使用一个函数方法,供大家参考

image.png

方式一:除了姓名第一个字外,其他显示*

<?php
 
function substr_cut($user_name){
             $strlen     = mb_strlen($user_name, 'utf-8'); //获取字符长度
             $firstStr     = mb_substr($user_name, 0, 1, 'utf-8');  //查找字符第一个
             $str=$firstStr . str_repeat('*', $strlen - 1);  //拼接第一个+把字符串 "* " 重复 $strlen - 1 次:
             return $str;
}
?>

使用方法

<?php
$name=’关羽’;
echo  substr_cut($name);
?>

方式二、姓名只显示首尾,其他用*代替

<?php
function substr_cut($user_name){
    $strlen     = mb_strlen($user_name, 'utf-8');
    $firstStr     = mb_substr($user_name, 0, 1, 'utf-8');
    $lastStr     = mb_substr($user_name, -1, 1, 'utf-8');
    return $strlen == 2 ? $firstStr . str_repeat('*', mb_strlen($user_name, 'utf-8') - 1) : $firstStr . str_repeat("*", $strlen - 2) . $lastStr;
}

使用方法

<?php
$name=’关羽’;
echo  substr_cut($name);
?>



  • 暂无任何回答