PHP身份证号、手机号、姓名掩码

<?php
	  /**
    * 对银行卡号进行掩码处理
    * 掩码规则头4位,末尾余数位不变,中间4的整数倍字符用星号替换,并且用每隔4位空格隔开
    * @author 晓风<215628355@qq.com>
    * @param  string $bankCardNo 银行卡号
    * @return string             掩码后的银行卡号
    */
    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
    */
   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 晓风<215628355@qq.com> 
    * @param string $true_name 真实姓名
    * @return string
    */
   function formatTrueName($true_name){      
        return "*" . mb_substr($true_name,1);
   }
 
  /**
    * 对身份证进行掩码
    * 掩码规则是显示头两位和末尾1位,中间星号
    * @author 晓风<215628355@qq.com> 
    * @param string $id_card 身份证号
    * @return string
    */
   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);
   }
?>

PHP身份证号、手机号、姓名掩码