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

学习笔记 马富天 2017-09-05 10:35:26 78 0

【摘要】使用 * 号来隐藏用户的邮箱地址能够对用户的个人信息进行有效的保护,本文讲述一下使用 PHP 来完成对邮箱地址的用星号 * 来保护用户的私密信息,其中比较重点的地方在于如何解决中文邮箱地址切割出现乱码问题。

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

  1. header('content-type:text/html;charset=utf-8');
  2. $email1 = 'a@mafutian.net';	//	只有一个字母
  3. $email2 = 'ad@mafutian.net';	//	仅有二个字母
  4. $email3 = 'admin@mafutian.net';	//	超哥二个字母的昵称
  5. $email4 = 'admin马富天@mafutian.net';	//	含有中文
  6. saveEmail($email1);
  7. saveEmail($email2);
  8. saveEmail($email3);
  9. saveEmail($email4);
  10. function saveEmail($email)
  11. {
  12. 	$result = explode('@',$email);
  13. 	$addr = $result[0];
  14. 	$len = mb_strlen($addr,'utf-8');
  15. 	$new_addr = '';
  16. 	if($len == 1)
  17. 	{
  18. 		$new_addr = '*';
  19. 	}elseif($len == 2)
  20. 	{
  21. 		$new_addr = mb_substr($addr,0,1,'utf-8');
  22. 		$new_addr .= '*';
  23. 	}elseif($len > 2)
  24. 	{
  25. 		$new_addr = mb_substr($addr,0,1,'utf-8');
  26. 		$new_addr .= str_repeat('*',$len - 2);
  27. 		$new_addr .= mb_substr($addr,$len-1,1,'utf-8');
  28. 	}
  29. 	$email = $new_addr.'@'.$result[1];
  30. 	var_dump($email);
  31. 	return $email;
  32. }

运行的截图如下所示:

请输入图片名称

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

版权归 马富天PHP博客 所有

本文标题:《PHP 使用星号 * 来隐藏用户的邮箱地址实现保密功能》

本文链接地址:http://www.mafutian.net/4.html

转载请务必注明出处,小生将不胜感激,谢谢! 喜欢本文或觉得本文对您有帮助,请分享给您的朋友 ^_^

0

0

上一篇《 var_dump 输出数组时最多显示 128 个元素,超出部分不显示,有省略号 》 下一篇《 PHP快速入门 》
分享到:

暂无评论

评论审核未开启
表情 表情 表情 表情 表情 表情 表情 表情 表情 表情 表情 表情 表情 表情 表情 表情 表情 表情 表情 表情 表情 表情 表情 表情
验证码