php手机号中间四位用星号*代替显示

星号代替指定数字这个通常用于手机在前面页面显示出来时要隐藏指定几位数字了,具体的方法 我给各位整理了一些希望对大家有帮助。

通过php用三种简单的方法实现手机号中间四位(n位)用星号显示:

$mobile = '13912345678';

1.字符串截取法

$newMobile1 = substr($mobile, 0, 5).'****'.substr($mobile, 9);

echo $newMobile1.'<br/>';

2.替换字符串的子串

$newMobile2 = substr_replace($mobile, '****', 5, 4);

echo $newMobile2.'<br/>';

3.用正则

$newMobile3 = preg_replace('/(\d{5})\d{4}(\d{2})/', '$1****$2', $mobile);

echo $newMobile3;

4.正则

function hidtel($phone){

$IsWhat = preg_match('/(0[0-9]{2,3}[-]?[2-9][0-9]{6,7}[-]?[0-9]?)/i',$phone); //固定电话

if($IsWhat == 1){

return preg_replace('/(0[0-9]{2,3}[-]?[2-9])[0-9]{3,4}([0-9]{3}[-]?[0-9]?)/i','$1****$2',$phone);

}else{

return preg_replace('/(1[358]{1}[0-9])[0-9]{4}([0-9]{4})/i','$1****$2',$phone);

}

}

Method 2:

$num = "13966778888"

$str = substr_replace($num,'****',3,4);

示例,代码如下:

$phonenum = "13966778888";

echo hidtel($phonenum);

最后输出:139****8888