设为首页收藏本站

PHPIN.NET

 找回密码
 立即注册
查看: 23|回复: 0

[PHP类\函数] 隐藏用户名、邮箱、手机账号中间字符(支持中文)

[复制链接]

374

主题

381

帖子

2554

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
2554
发表于 2016-11-21 16:09:12 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
隐藏用户名、邮箱、手机账号中间字符(支持中文)

  1. /**
  2. * 隐藏用户名、邮箱、手机账号中间字符
  3. * @param string   $str     需要处理的字符串
  4. * @param int      $bengin  开始需要显示的字符个数
  5. * @param int      $end     结尾需要显示的字符个数
  6. * @param boolean  $email   是否邮箱账号
  7. * @param string   $glue    替换符号
  8. * @return string
  9. */
  10. function hide_account($str, $bengin = 1, $end = 1, $email = false, $glue = "*" ) {
  11.     if(!$str){
  12.         return "";
  13.     }
  14.     $encoding = "utf-8";
  15.     $email_end = "";
  16.     if($email){
  17.         if (strpos($str, '@')) {
  18.             $email_array = explode("@", $str);
  19.             $str = $email_array[0];
  20.             $email_end = $email_array[1];
  21.         }
  22.     }
  23.     $strlen  = mb_strlen($str, $encoding);
  24.     //如果只有一个字符
  25.     if($strlen == 1){
  26.         return $str;
  27.     }
  28.     if($strlen == 2){
  29.         return  mb_substr($str, 0, 1, $encoding).$glue;
  30.     }
  31.     if($bengin > $strlen){
  32.         $bengin = $strlen - 2;
  33.         $end = 1;
  34.     }
  35.     if($end > $strlen){
  36.         $bengin = 1;
  37.         $end = $strlen - 2;
  38.     }
  39.     if(($bengin + $end) > $strlen - 1){
  40.         $bengin = $strlen - $end - 1;
  41.     }
  42.     //隐藏长度
  43.     $glue_len = $strlen - $bengin - $end;
  44.     //首字符
  45.     $first_str   = mb_substr($str, 0, $bengin, $encoding);
  46.     $last_str    = mb_substr($str, -$end, null, $encoding);
  47.     $hide_str = $first_str . str_repeat($glue, $glue_len) . $last_str;
  48.     if($email_end){
  49.         return $hide_str . '@' .$email_end;
  50.     }
  51.     else{
  52.         return $hide_str;
  53.     }
复制代码


您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|PHPIN.NET ( 冀ICP备00000001号 )|网站地图  

GMT+8, 2016-12-6 00:28

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表