龙空技术网

WordPress保护隐私使用星号隐藏手机号码、中文用户名和邮箱

心中的那片海 106

前言:

此时姐妹们对“php星号替换”可能比较关切,姐妹们都想要了解一些“php星号替换”的相关资讯。那么小编在网上网罗了一些有关“php星号替换””的相关文章,希望各位老铁们能喜欢,咱们快快来了解一下吧!

我们在开发WordPress主题的用户中心功能的时候,可能需要在用户基本资料的地方使用一些技术手段来保护用户的隐私信息,例如用户的邮箱地址、用户名或者是用户的手机号码。那么我们最常用的方式方法就是使用(*)星号来处理这些信息的显示效果来达到页面输出的用户隐私信息,例如下图的效果示例:

接下来我就来介绍一种简单又实用的WordPress中使用(*)星号隐藏用户信息的方法,我已经将代码封装,支持邮箱地址、手机号码、中文用户名,具体行有注释,复制下面代码到自己主题的 function.php 文件中直接用就好了。

核心代码

/** * 使用(*)星号隐藏手机号码、中文用户名及邮箱地址 * @Author   Jackie * @Author url    */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.comecho starStr($phone);  // 输出: 135****5678?>

标签: #php星号替换