PHP利用正则表达式实现手机号码中间4位用星号(*)替换显示

//Method 1:
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

代码技巧