当前位置:首页 > PHP教程 > php应用 > 列表

PHP中如何实现常用邮箱的基本判断

发布:smiling 来源: PHP粉丝网  添加日期:2020-08-23 20:52:27 浏览: 评论:0 

在邮件发送出去之前,用户的基本信息已经存在于数据库中了,如果是个错误的邮箱或者是恶意多注册账户那就需要过滤了,下面为大家介绍下PHP中实现常用邮箱的判断.

越来越多的网站希望用户使用邮箱进行注册,或者是绑定邮箱,这时候就要对邮箱的正确性进行确认,有的人采用发送邮件进行激活的方式来进行判断,从而激活一个账户,但是存在一个问题就是,在邮件发送出去之前,用户的基本信息已经存在于数据库中了,如果是个错误的邮箱或者是恶意多注册账户,那就会造成非活动账号太多,占用数据库存储空间,这边就需要在之前就进行这些邮箱的过滤,因此作者写下下面的一个方法用来过滤邮箱。 代码如下:

  1. /**  
  2. * @todo 用户输入安全性检测  
  3. * @param $inputString 用户输入信息  
  4. * @return true/false  
  5. * @final 可以根据自己的需求进行过滤内容的变换  
  6. */  
  7. public function checkUserInput($inputString){  
  8. if (strpos('script'$inputString)!=false){//检测是否含有script脚本  
  9. return FALSE;  
  10. }else if (strpos('iframe'$inputString)!=false){//检测是否含有iframe框架  
  11. return FALSE;  
  12. }else {  
  13. return TRUE;  
  14. }  
  15. }  
  16.  
  17. /**  
  18. * @todo checkeemail  
  19. * @param emailString  
  20. * @return false/true  
  21. */  
  22. public function checkEmail($emailString){  
  23. if ($this -> checkUserInput($emailString) === TRUE){//检测是否含有敏感词汇  
  24. if (strpos('@'$emailString) != FALSE){//检测是否存在@字符  
  25. $emailArr = explode('@'$emailString);  
  26. if (count($emailArr) > 2){//检测是否存在多个@字符  
  27. return FALSE;  
  28. }else{  
  29. if (in_array('@'.$emailArr[1], Yii::app() -> params['mail_suffix'])){//检测后缀是否满足日常常用邮箱后缀  
  30. return TRUE;  
  31. }else{  
  32. return FALSE;  
  33. }  
  34. }  
  35. }else{  
  36. return FALSE;  
  37. }  
  38. }else{  
  39. return FALSE;  
  40. }  
  41. }  

其中我定义了一个常用邮箱的后缀的数组,具体如下:

常用邮箱后缀,根据具体需求可以再增加代码如下:

  1. 'mail_suffix'=>array('@hotmail.com',  
  2. '@msn.com',  
  3. '@yahoo.com',  
  4. '@gmail.com',  
  5. '@aim.com',  
  6. '@aol.com',  
  7. '@mail.com',  
  8. '@walla.com',  
  9. '@inbox.com',  
  10. '@126.com',  
  11. '@163.com',  
  12. '@sina.com',  
  13. '@21cn.com',  
  14. '@sohu.com',  
  15. '@yahoo.com.cn',  
  16. '@tom.com',  
  17. '@qq.com',  
  18. '@etang.com',  
  19. '@eyou.com',  
  20. '@56.com',  
  21. '@x.cn',  
  22. '@chinaren.com',  
  23. '@sogou.com',  
  24. '@citiz.com',  
  25. ),  

到此邮箱的过滤方法就完成了,大家可以在此基础上进行进一步的完善! 

Tags: PHP常用邮箱

分享到: