【原创】 php隐藏手机号码中间几位数
栏目:PHP  作者:隆航  阅读:(2250)

在项目中需要用到手机号的中间隐藏,这里的话可能有些非主流写法让自己的考虑不是那么全,于是在网上找了一份源码研究研究

这是需要的效果:

QQ截图20151204105907.png

然后是函数:

<?php
/**
 * 函数说明:隐藏中间的字段
 * 传递参数:
 * $string 手机号
 * $strlen 隐藏字节
 * 返回参数:
 * $tmpstr 隐藏后的手机号
 */
function sub_right($string, $strlen = '50'){ 
    $tmpstr = ""; 
//先把字符串减去3位
    $lengs =strlen($string)-3; 
//如果截取后的字符窜长度小于或者等于10位
    if($lengs<=10)
    $strlen=$lengs-4; //4个星号,所以这里减去4
    for($i = 0; $i < strlen($string); $i++) {
    //前4位处理 
        if($i<$strlen){
        //ord() 函数返回字符串的首个字符的 ASCII 值。  0xa0是十六进制数,asc码一般大于这个值得就是汉字
            if(ord(substr($string, $i, 1)) > 0xa0) {
            //是汉字就截取2位 
                $tmpstr .= substr($string, $i, 2); 
                $i++; 
            } else 
//不是汉字就截取1位
                $tmpstr .= substr($string, $i, 1); 
        }else{
        //满足4位之后  补足*
            if($i < $lengs){ 
                $tmpstr .="*"; 
            } 
        } 
    } 
    $tmpstr .= substr($string,-3); 
    return $tmpstr; 
}
// eg 
$str="13098877149"; 
echo sub_right($str,3); 
?>

有更好的朋友请联系我,谢谢~



昵称
邮箱
域名
  记住 通知博主
验证码

  程序相关

站点版本:青春博客-V 2.1.0

开源版本:青春博客-Beta v2.0

 下载  在线支付  在线工具  在线音乐

  随机文章