在开发中,经常遇到一些小问题,比如用户隐私问题就值得关注下,在页面上显示的内容都要处理下才可以 

 对银行卡,手机号,真实姓名,身份证进行掩码也是常见的


  
/**
 * 对银行卡号进行掩码处理
 * 掩码规则头4位,末尾余数位不变,中间4的整数倍字符用星号替换,并且用每隔4位空格隔开
 * @author 萤火虫<123246359@qq.com>
 * @param  string $bankCardNo 银行卡号
 * @return string             掩码后的银行卡号
 */
if (!function_exists('formatBankCardNo')) {
    function formatBankCardNo($bankCardNo){
        //每隔4位分割为数组
        $split = str_split($bankCardNo,4);
        //头和尾保留,其他部分替换为星号
        $split = array_fill(1,count($split) - 2,"****") + $split;
        ksort($split);
        //合并
        return implode(" ",$split);
    }
}
/**
 * 对手机号进行掩码处理
 * 手机号掩码的规则是末尾4位,开头余数位不变,中间4的整数倍字符用星号替换
 * @author 萤火虫<215628355@qq.com>
 * @param string $mobile 手机号
 * @return string
 */
if (!function_exists('formatMobile')) {
    function formatMobile($mobile){
        //颠倒顺序每隔4位分割为数组
        $split = str_split(strrev($mobile),4);
        //头和尾保留,其他部分替换为星号
        $split = array_fill(1,count($split) - 2,"****") + $split;
        ksort($split);
        //合并颠倒顺序
        return strrev( implode("",$split));
    }
}
/**
 * 姓名第一个字掩码
 * @author 萤火虫<123246359@qq.com>
 * @param string $true_name 真实姓名
 * @return string
 */
if (!function_exists('formatTrueName')) {
    function formatTrueName($true_name){
        return "*" . mb_substr($true_name,1);
    }
}
/**
 * 对身份证进行掩码
 * 掩码规则是显示头两位和末尾1位,中间星号
 * @author 萤火虫<123246359@qq.com>
 * @param string $id_card 身份证号
 * @return string
 */
if (!function_exists('formatIdCard')) {
    function formatIdCard($id_card)
    {
        //每隔1位分割为数组
        $split = str_split($id_card, 1);
        //头2位和尾保留,其他部分替换为星号
        $split = array_fill(2, count($split) - 3, "*") + $split;
        ksort($split);
        //合并
        return implode("", $split);

    }
}



点赞(0) 打赏

Comment list 共有 0 条评论

暂无评论

微信小程序

微信扫一扫体验

立即
投稿

微信公众账号

微信扫一扫加关注

发表
评论
返回
顶部