【实例】php实现字符串影藏显示功能

1、隐藏部分字符串
/**
 * 隐藏部分字符串
 * 此方法多用于手机号码或身份证号、银行卡号的中间部分数字的隐藏
 * @param  string  $str     需要隐藏的字符串
 * @param  string  $replace 替换隐藏字符串的字符
 * @param  integer $start   隐藏字符串的开始位置
 * @param  integer $len     隐藏字符个数
 * @return string           已经隐藏的字符串
 */
function func_str_replace($str,$replace='*',$start=0,$len=4){
	$length = mb_strlen($str);
	if($length>intval($start+$len)){
		$forword = mb_substr($str,$start,3,'utf-8');
		$end = mb_substr($str,intval($length-$len),null,'utf-8');
	} else {
		$forword = mb_substr($str,0,1,'utf-8');
        $end = mb_substr($str,$length-1,1,'utf-8');
        $len = $length - 2;
	}
	$new_str = $forword;
    for ($i = 0; $i < $len; $i++) {
        $new_str .= $replace;
    }
    $new_str .= $end;
    return $new_str;
}

1、mb_strlen()函数返回字符串长度。
2、mb_substr()函数截取字符串并返回截取的字符串。

测试:
echo func_str_replace(‘18829026575’);
效果:
188****6575

2、只保留首尾字符
/**
 * 只保留字符串的首尾字符,中间的部分用*代替(两个字的只显示第一个字)
 * @param string $user_name 姓名
 * @return string 格式化后的姓名
 */
function substr_cut($name){
	$strlen = mb_strlen($name,'utf-8');
	$firstStr = mb_substr($name,0,1,'utf-8');
	$lastStr = mb_substr($name,$strlen-1,1,'utf-8');
	if($strlen == 2){
		$hideStr = str_repeat('*',$strlen - 1);
        $result = $firstStr . $hideStr ;
	} else {
		$hideStr = str_repeat("*", $strlen - 2);
        $result = $firstStr . $hideStr . $lastStr;
	}
	return $result;
}

str_repeat()函数把字符串重复指定的次数。

测试:
echo substr_cut(‘王健林’);
效果:
王*林

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值