龙空技术网

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

主题客 191

前言:

此刻姐妹们对“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正则验证手机号