1、str_hide 函数实例
echo '<h3>1.姓名/字符串</h3>';
$str = 'PHP 字符串部分自定义替换星号(身份证、手机、姓名、IP等)实例';
echo str_hide($str,3).'<br/>';
echo str_hide($str,3,'****').'<br/>';
echo str_hide($str,3,-2,'*').'<br/>';
echo str_hide($str,3,-2,'****').'<br/>';
echo '<h3>2.身份证</h3>';
$idcard = '45072220081008821X';
echo str_hide($idcard,2).'<br/>';
echo str_hide($idcard,2,'****').'<br/>';
echo str_hide($idcard,-4,'****').'<br/>';
echo str_hide($idcard,5,8).'<br/>';
echo '<h3>3.手机号</h3>';
$mobile = 13800138000;
echo str_hide($mobile,2).'<br/>';
echo str_hide($mobile,2,'****').'<br/>';
echo str_hide($mobile,2,-3).'<br/>';
echo str_hide($mobile,2,-3,'****').'<br/>';
echo '<h3>4.银行卡</h3>';
$bankCard = '6228123456789018123';
echo str_hide($bankCard,4).'<br/>';
echo str_hide($bankCard,4,'****').'<br/>';
$str_hide = str_hide($bankCard,4,-3,'*');
echo $str_hide.'<br/>';
$split_card = implode(' ',str_split($str_hide,4));
echo $split_card.'<br/>';
echo str_hide($bankCard,-12,"*").'<br/>';
echo str_hide($bankCard,-12,"0").'<br/>';
echo str_hide($bankCard,-12,-5,"*").'<br/>';
2、str_hide 函数
function str_hide($str,$start,$length=0,$key='',$charset='utf8'){
if(strlen($length) && gettype($length) != "integer"){
$key && $charset = $key;
$key = $length;
$length = 0;
}
$Par = $length?[$start,$length]:[$start];
$rep_str = mb_substr($str,...$Par);
strlen($key) or $key = '*';
strlen($key) == 1 && $key = str_pad('',mb_strlen($rep_str),$key);
$start = strlen(mb_substr($str,0,$start));
$count = strlen($rep_str);
$result = substr_replace($str,$key,$start,$count);
return $result;
}