我是靠谱客的博主 轻松老鼠,最近开发中收集的这篇文章主要介绍php 屏蔽字符串,PHP屏蔽用户名称的部分字符,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

上一篇文章介绍了“PHP屏蔽手机号部分位数”的一般做法。今儿再看看PHP如何屏蔽用户名称的部分字符。

应用效果图:

0d84093448c362ae9f2468ad8a65f7de.png

代码实现:

/**

* 名称字符串适用*号做部分隐藏

*/

function replace_str_hide($str){

$resplace_str = array('*', '**', '***', '****', '*****');

$str_len = mb_strlen($str,'UTF-8');

switch (true) {

case $str_len <= 2 && $str_len > 1://1-2用1个*号取代

return mb_substr($str, 0, -strlen($resplace_str[0])) . $resplace_str[0];

break;

case $str_len <= 4 && $str_len > 2://2-4用2个*号取代

return mb_substr($str, 0, -strlen($resplace_str[1])) . $resplace_str[1];

break;

case $str_len <= 6 && $str_len > 4://4-6用3个*号取代

return mb_substr($str, 0, -strlen($resplace_str[2])) . $resplace_str[2];

break;

case $str_len <= 8 && $str_len > 6://6-8用4个*号取代

return mb_substr($str, 0, -strlen($resplace_str[3])) . $resplace_str[3];

break;

case strlen($str) > 8://8以上用5个*号取代

return mb_substr($str, 0, -strlen($resplace_str[4])) . $resplace_str[4];

break;

default:

return $str;

break;

}

}

echo replace_str_hide('我是你的眼');

//输出的结果:我是***

这里用到的知识点 字符串的截取替换 和获取中文字符串的长度 。你可能会疑问为什么不和屏蔽手机号一样直接用substr_replace()处理。这里主要牵扯到php很多函数并没对中文字符的处理。中文不想英文字符一样,一个英文字符占一个字节,一个汉字字符占多个字节,具体占多少字节呢?要看你用的什么编码,UTF-8占3个字节,gbk占2个字节。substr_replace('$str','replace', start, length)中start和length是按照英文字符计算的,包括获取字符长度的strlen()。总之,牵扯到中文字符的计算都要注意你所使用的php内置方法是否兼容中文字符,防止计算字符不准或者出现截取乱码现象的产生。

最后

以上就是轻松老鼠为你收集整理的php 屏蔽字符串,PHP屏蔽用户名称的部分字符的全部内容,希望文章能够帮你解决php 屏蔽字符串,PHP屏蔽用户名称的部分字符所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(49)

评论列表共有 0 条评论

立即
投稿
返回
顶部