手机号、用户名(姓名)中间星号处理

一、手机号处理

 substr_replace($value['user_name'], '****', 3, 4);

二、用户名(姓名)处理

用户名分为中文与英文

UTF-8中文正则:"/[\x{4e00}-\x{9fa5}]+/u"

GB2312中文正则:"/[".chr(0xa1)."-".chr(0xff)."]+/"

 //判断是否包含中文字符
if(preg_match("/[\x{4e00}-\x{9fa5}]+/u", $str)) {
    //按照中文字符计算长度
    $len = mb_strlen($str, 'UTF-8');
    //echo '中文';
    if($len >= 3){
        //三个字符或三个字符以上掐头取尾,中间用*代替
        $str = mb_substr($str, 0, 1, 'UTF-8') . '*' . mb_substr($str, -1, 1, 'UTF-8');
    } elseif($len == 2) {
        //两个字符
        $str = mb_substr($str, 0, 1, 'UTF-8') . '*';
    }
} else {
    //按照英文字串计算长度
    $len = strlen($str);
    //echo 'English';
    if($len >= 3) {
        //三个字符或三个字符以上掐头取尾,中间用*代替
        $str = substr($str, 0, 1) . '*' . substr($str, -1);
    } elseif($len == 2) {
        //两个字符
        $str = substr($str2, 0, 1) . '*';
    }

注意:如有侵犯请私信作者,联系删除

你可能感兴趣的:(php,php)