PHP用户名用*号处理:

用户名:英文、中文、中英文混合的、中英文字符混合的

处理为:首字母和末尾保留,中间用*号代替(一个字符直接显示,两个字符:张*,三个以上字符:宋*丹)

首先判断字符中是否包含中文字符,如果有使用mb_ 系列函数处理(这里的中文使用的是UTF-8格式的)

UTF-8中文正则:"/[\x{4e00}-\x{9fa5}]+/u"

GB2312中文正则:"/[".chr(0xa1)."-".chr(0xff)."]+/"

//判断是否包含中文字符
if(preg_match("/[\x{4e00}-\x{9fa5}]+/u", $str)) {
//按照中文字符计算长度
$len = mb_strlen($str, 'UTF-8');
//echo '中文';
if($len >= 3){
//三个字符或三个字符以上掐头取尾,中间用*代替
$str = mb_substr($str, 0, 1, 'UTF-8') . '*' . mb_substr($str, -1, 1, 'UTF-8');
} elseif($len == 2) {
//两个字符
$str = mb_substr($str, 0, 1, 'UTF-8') . '*';
}
} else {
//按照英文字串计算长度
$len = strlen($str);
//echo 'English';
if($len >= 3) {
//三个字符或三个字符以上掐头取尾,中间用*代替
$str = substr($str, 0, 1) . '*' . substr($str, -1);
} elseif($len == 2) {
//两个字符
$str = substr($str2, 0, 1) . '*';
}
}

 

最新文章

  1. js操作json与字符串相互转换
  2. PL/0编译器(java version)–PL0.java
  3. 大型HashMap
  4. Asp.Net缓存(2)
  5. NodeJS常用库说明
  6. Linux 进程通信之 ——信号和信号量总结
  7. 在linux下用tomcat部署java web项目的过程与注意事项
  8. 关于PHP 开启zlib gzip配置
  9. 错误代码和UNICODE编程
  10. 报表打印错误:Forcing NLS_NUMERIC_CHARACTERS to: '.,' for XDO processing
  11. Ios还是安卓的判断
  12. vue集成环信IM
  13. 4.8Python数据处理篇之Matplotlib系列(八)---Figure的学习
  14. python2.7 (x64) 调用 java 代码实践
  15. HNOI2018题解
  16. Java EE之Struts2-2.5配置
  17. 20145212罗天晨 WEB基础实践
  18. Linux日志文件总管——logrotate
  19. JS控制form表单action去向
  20. 边框画的三角形给shadow

热门文章

  1. usb-serial驱动问题
  2. [PAT]素因子分解(20)
  3. 怎样安装Ubuntu操作系统
  4. How to pronounce symbols on keyboard
  5. SOA Integration Repository Error:Service Provider Access is not available.
  6. Maven(二)使用eclipse创建maven多模块项目
  7. 关于handler
  8. CSS VS JS动画,哪个更快[译]
  9. 0,SFDC 开发篇 - 开发框架和APEX语法
  10. python面向对象编程