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

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

/**
* @todo 用户输入安全性检测
* @param $inputString 用户输入信息
* @return true/false
* @final 可以根据自己的需求进行过滤内容的变换
*/
public function checkUserInput($inputString){
if (strpos('script', $inputString)!=false){//检测是否含有script脚本
return FALSE;
}else if (strpos('iframe', $inputString)!=false){//检测是否含有iframe框架
return FALSE;
}else {
return TRUE;
}
}

/**
* @todo checkeemail
* @param emailString
* @return false/true
*/
public function checkEmail($emailString){
if ($this -> checkUserInput($emailString) === TRUE){//检测是否含有敏感词汇
if (strpos('@', $emailString) != FALSE){//检测是否存在@字符
$emailArr = explode('@', $emailString);
if (count($emailArr) > 2){//检测是否存在多个@字符
return FALSE;
}else{
if (in_array('@'.$emailArr[1], Yii::app() -> params['mail_suffix'])){//检测后缀是否满足日常常用邮箱后缀
return TRUE;
}else{
return FALSE;
}
}
}else{
return FALSE;
}
}else{
return FALSE;
}
}

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

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

'mail_suffix'=>array('@hotmail.com',
'@msn.com',
'@yahoo.com',
'@gmail.com',
'@aim.com',
'@aol.com',
'@mail.com',
'@walla.com',
'@inbox.com',
'@126.com',
'@163.com',
'@sina.com',
'@21cn.com',
'@sohu.com',
'@yahoo.com.cn',
'@tom.com',
'@qq.com',
'@etang.com',
'@eyou.com',
'@56.com',
'@x.cn',
'@chinaren.com',
'@sogou.com',
'@citiz.com',
),

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

相关文章

ThinkPHP、ZF2、Yaf、Laravel框架路由大比拼

前言 读过一篇关于Zend Framework2的技术文章《ZF2多级树形路由Route配置实例》,是介绍路由配置的。我觉得很有意思,这是的需求: /user对应用户列表页面 /user...

Content-Disposition使用方法和注意事项

最近不少Web技术圈内的朋友在讨论协议方面的事情,有的说web开发者应该熟悉web相关的协议,有的则说不用很了解。个人认为这要分层次来看待这个问 题,对于一个新手或者刚入门的web开发人...

php动态生成JavaScript代码

复制代码 代码如下:<?php echo <<<JS //使用多行输出的方法输出JavaScript代码 <SCRIPT Language = "JavaS...

PHP session垃圾回收机制实例分析

本文实例讲述了PHP session垃圾回收机制。分享给大家供大家参考,具体如下: session过期时间 在php.ini文件中有这样一个配置,这个配置表示session文件过期时间,...

php自定义函数实现统计中文字符串长度的方法小结

本文实例讲述了php自定义函数实现统计中文字符串长度的方法。分享给大家供大家参考,具体如下: 中文字符计算为2个字符 英文字符计算为1个 代码 /** * 可以统计中文字符串长度的...