itRef.cn技术参考网站

当前位置: 主页 > PHP >

用户名使用星号代替的php函数

时间:2013-10-25 14:42来源:未知 作者:wiwi 点击:
问题描述 在一些应用场景中,为了更好的保护用户隐私,需要将用户名中的部分使用星号代替。这个解决不能直接使用php的substr来解决,因为substr并不适用于有汉字的情况,而是应该使用mb_substr函数,在使用这个函数的时候要注意加入编码参数。 问题解决 /**

问题描述

在一些应用场景中,为了更好的保护用户隐私,需要将用户名中的部分使用星号代替。这个解决不能直接使用php的substr来解决,因为substr并不适用于有汉字的情况,而是应该使用mb_substr函数,在使用这个函数的时候要注意加入编码参数。

问题解决

  1. /** 
  2. * 截断字符 
  3. * substring($str, 18, "utf-8");  
  4. * substring($str, 18, "utf-8");  
  5. */ 
  6. function substring($str$len$code="utf-8"$end="..."){  
  7.     $str = preg_replace("|<[^>]*>|"""$str);  
  8.     $str = preg_replace("|\\s{2,}|"""$str);  
  9.     $l = mb_strlen($str$code);  
  10.     if($len > $l){  
  11.         return $str;  
  12.     }  
  13.     $ret = "";  
  14.     $count = 0;  
  15.     for($i=0; $i<$l$i++){  
  16.         $chart = mb_substr($str$i, 1, $code);  
  17.         if(strlen($chart)==1){  
  18.         $count += 1;  
  19.         }else{  
  20.         $count += 2;  
  21.         }  
  22.         if($count>$len){  
  23.         return $ret . $end;  
  24.         }else{  
  25.         $ret .= $chart;  
  26.         }  
  27.     }  
  28. }  

 

(责任编辑:wiwi) 转载请注明 来源于itRef.cn技术参考网站:
顶一下
(0)
0%
踩一下
(0)
0%
------分隔线----------------------------
栏目列表
推荐内容