PHP用*号替代姓名除第一个字之外的字符

/* 
 * 作用:用*号替代姓名除第一个字之外的字符 
 * 参数: 
 * 
 * 
 * 返回值:string 
 */  
function starReplace($name, $num = 0)  
{  
    if ($num && mb_strlen($name, 'UTF-8') > $num) {  
        return mb_substr($name, 0, 4) . '*';  
    }  
  
    if ($num && mb_strlen($name, 'UTF-8') <= $num) {  
        return $name;  
    }  
  
    $doubleSurname = [  
        '欧阳', '太史', '端木', '上官', '司马', '东方', '独孤', '南宫',  
        '万俟', '闻人', '夏侯', '诸葛', '尉迟', '公羊', '赫连', '澹台', '皇甫', '宗政', '濮阳',  
        '公冶', '太叔', '申屠', '公孙', '慕容', '仲孙', '钟离', '长孙', '宇文', '司徒', '鲜于',  
        '司空', '闾丘', '子车', '亓官', '司寇', '巫马', '公西', '颛孙', '壤驷', '公良', '漆雕', '乐正',  
        '宰父', '谷梁', '拓跋', '夹谷', '轩辕', '令狐', '段干', '百里', '呼延', '东郭', '南门', '羊舌',  
        '微生', '公户', '公玉', '公仪', '梁丘', '公仲', '公上', '公门', '公山', '公坚', '左丘', '公伯',  
        '西门', '公祖', '第五', '公乘', '贯丘', '公皙', '南荣', '东里', '东宫', '仲长', '子书', '子桑',  
        '即墨', '达奚', '褚师', '吴铭'  
    ];  
  
    $surname = mb_substr($name, 0, 2);  
    if (in_array($surname, $doubleSurname)) {  
        $name = mb_substr($name, 0, 2) . str_repeat('*', (mb_strlen($name, 'UTF-8') - 2));  
    } else {  
        $name = mb_substr($name, 0, 1) . str_repeat('*', (mb_strlen($name, 'UTF-8') - 1));  
    }  
  
  
    return $name;  
}  

  

原文地址:https://www.cnblogs.com/bluealine/p/8274824.html