PHP 使用星号 * 来隐藏用户的邮箱地址实现保密功能

原创 木鱼  2017-09-07 09:52  阅读 27 次

原文:PHP 使用星号 * 来隐藏用户的邮箱地址实现保密功能

邮箱格式分为 mafutian@126.com 这样,我们需要隐藏的是 mafutian 中的除了字母和尾字母的所有字符即:m******n 这样,那么如何解决中文乱码问题呢,我们使用 mb_strlen,mb_substr 来解决此问题。

完整的代码如下:

<?php

header('content-type:text/html;charset=utf-8');
$email1 = 'a@mafutian.net';	//	只有一个字母
$email2 = 'ad@mafutian.net';	//	仅有二个字母
$email3 = 'admin@mafutian.net';	//	超哥二个字母的昵称
$email4 = 'admin马富天@mafutian.net';	//	含有中文

saveEmail($email1);
saveEmail($email2);
saveEmail($email3);
saveEmail($email4);

function saveEmail($email)
{
	$result = explode('@',$email);
	$addr = $result[0];
	$len = mb_strlen($addr,'utf-8');
	$new_addr = '';
	if($len == 1)
	{
		$new_addr = '*';
	}elseif($len == 2)
	{
		$new_addr = mb_substr($addr,0,1,'utf-8');
		$new_addr .= '*';
	}elseif($len > 2)
	{
		$new_addr = mb_substr($addr,0,1,'utf-8');
		$new_addr .= str_repeat('*',$len - 2);
		$new_addr .= mb_substr($addr,$len-1,1,'utf-8');
	}
	$email = $new_addr.'@'.$result[1];
	var_dump($email);
	return $email;
}

运行的截图如下所示:

请输入图片名称

由此可知,我们实现了一个字母,二个字母,普通邮箱地址,含有中文的邮箱地址保密功能。

本文地址:https://www.m5yu.com/php-enemail.html
关注我们:请关注一下我们的微信公众号:扫描二维码,公众号:木鱼博客
版权声明:本文为原创文章,版权归 木鱼 所有,欢迎分享本文,转载请保留出处!

发表评论