php 中文字符串,如姓名替换中间的字为“*”

/*替换,自己需要的字符串
注意:红色部分根据自己需要修改成自己的长度会起始位置
*/
function ceshi($name){
    // 计算字符串长度,无论汉字还是英文字符全部为1
    $length = mb_strlen($name,'utf-8');

    // 截取前面字符串
    $firstStr1 = mb_substr($name,0,intval(ceil($length/4)),'utf-8');
    // 截取中间字符串代码
    $firstStr = mb_substr($name,intval(ceil($length/4)),intval(floor($length/2)),'utf-8');
    // 截取剩余字符串
    $firstStr2 = mb_substr($name,intval(ceil($length/4)) + intval(floor($length/2)), intval(floor(($length+1)/2 - 1)),'utf-8');

    return $firstStr1 . str_repeat("*",mb_strlen($firstStr,'utf-8')) . $firstStr2;
}

/*替换,姓名字符串*/

public function substrCut($userName)
{
    $strlen = mb_strlen($userName, 'utf-8');
    $firstStr = mb_substr($userName, 0, 1, 'utf-8');
    $lastStr = mb_substr($userName, -1, 1, 'utf-8');
    $resultName = ($strlen == 2) ? $firstStr . str_repeat('*', mb_strlen($userName, 'utf-8') - 1) : $firstStr . str_repeat("*", $strlen - 2) . $lastStr;

    return $resultName;
}

你可能感兴趣的:(php)