网站首页 > 基础教程 正文
我们在开发WordPress主题的用户中心功能的时候,可能需要在用户基本资料的地方使用一些技术手段来保护用户的隐私信息,例如用户的邮箱地址、用户名或者是用户的手机号码。那么我们最常用的方式方法就是使用(*)星号来处理这些信息的显示效果来达到页面输出的用户隐私信息,例如下图的效果示例:
接下来我就来介绍一种简单又实用的WordPress中使用(*)星号隐藏用户信息的方法,我已经将代码封装,支持邮箱地址、手机号码、中文用户名,具体行有注释,复制下面代码到自己主题的 function.php 文件中直接用就好了。
核心代码
/**
* 使用(*)星号隐藏手机号码、中文用户名及邮箱地址
* @Author Jackie
* @Author url https://www.themeke.com
*/
function starStr($str) {
if (strpos($str, '@')) { //邮箱
$email_array = explode("@", $str);
$prevfix = (strlen($email_array[0]) < 4) ? "" : substr($str, 0, 3); //邮箱前缀
$count = 0;
$str = preg_replace('/([\d\w+_-]{0,100})@/', '***@', $str, -1, $count); //邮箱前缀星号替换
$repstr = $prevfix . $str;
} else {
$pattern = '/(1[3458]{1}[0-9])[0-9]{4}([0-9]{4})/i'; //正则判断手机号
if (preg_match($pattern, $str)) { //手机号码星号替换
$repstr = preg_replace($pattern, '$1****$2', $str);
} else { //中文用户名星号替换
$strlen = mb_strlen($str, 'utf-8');
$firstStr = mb_substr($str, 0, 1, 'utf-8');
$lastStr = mb_substr($str, -1, 1, 'utf-8');
if ($strlen == 2){
$repstr = $firstStr . str_repeat('*', mb_strlen($str, 'utf-8') - 1);
}else{
$repstr = $firstStr . str_repeat("*", $strlen - 2) . $lastStr;
}
}
}
return $repstr;
}
调用输出数据
<?php
$username = "用户名";
$email = "123456@qq.com";
$phone = "13512345678";
echo starStr($username); // 输出: 用*名
echo starStr($email); // 输出: 123***@qq.com
echo starStr($phone); // 输出: 135****5678
?>
猜你喜欢
- 2024-10-12 Linux库函数调用工具—ltrace命令
- 2024-10-12 C/C++恶意代码盘点(二):后门丨文件监控丨自删除功能
- 2024-10-12 C语言文件的随机读写、块读写、行、字符读写以及格式化输入输出
- 2024-10-12 C/C++恶意代码盘点(一):进程遍历丨木马病毒丨密码记录
- 2024-10-12 C/C++连接MySql数据库使用总结 c++连接数据库sqlserver
- 2024-10-12 MySQL:字符集问题 mysql字符集设置命令
- 2024-10-12 CAD常用语言函数 cad常用语言函数有哪些
- 2024-10-12 PHP压缩ZIP中文注释乱码问题解决办法
- 2024-10-12 Android Dalvik 使用详解 android dac
- 2024-10-12 C++|整型的最值、上溢、下溢、截断、类型提升和转换
- 最近发表
- 标签列表
-
- gitpush (61)
- pythonif (68)
- location.href (57)
- tail-f (57)
- pythonifelse (59)
- deletesql (62)
- c++模板 (62)
- css3动画 (57)
- c#event (59)
- linuxgzip (68)
- 字符串连接 (73)
- nginx配置文件详解 (61)
- html标签 (69)
- c++初始化列表 (64)
- exec命令 (59)
- canvasfilltext (58)
- mysqlinnodbmyisam区别 (63)
- arraylistadd (66)
- node教程 (59)
- console.table (62)
- c++time_t (58)
- phpcookie (58)
- mysqldatesub函数 (63)
- window10java环境变量设置 (66)
- c++虚函数和纯虚函数的区别 (66)