在开发中,经常遇到一些小问题,比如用户隐私问题就值得关注下,在页面上显示的内容都要处理下才可以
对银行卡,手机号,真实姓名,身份证进行掩码也是常见的
/**
* 对银行卡号进行掩码处理
* 掩码规则头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);
}
}
发表评论 取消回复