1. 程式人生 > >PHP用*號替代姓名除第一個字之外的字元

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; }
/*
 * 作用:用*號替代姓名除第一個字之外的字元
 * 引數:
 *
 *
 * 返回值: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;
}