首页 > php教程 > PHP源码 > 目前最符合规范的PHP版Email地址验证代码

目前最符合规范的PHP版Email地址验证代码

PHP中文网
发布: 2016-05-25 17:14:31
原创
1123 人浏览过


1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

function validEmail($email) {

    $isValid = true;

    $atIndex = strrpos ( $email, "@" );

    if (is_bool ( $atIndex ) && ! $atIndex) {

        $isValid = false;

    } else {

        $domain = substr ( $email, $atIndex + 1 );

        $local = substr ( $email, 0, $atIndex );

        $localLen = strlen ( $local );

        $domainLen = strlen ( $domain );

        if ($localLen < 1 || $localLen > 64) {

            // local part length exceeded

            $isValid = false;

        } else if ($domainLen < 1 || $domainLen > 255) {

            // domain part length exceeded

            $isValid = false;

        } else if ($local [0] == &#39;.&#39; || $local [$localLen - 1] == &#39;.&#39;) {

            // local part starts or ends with &#39;.&#39;

            $isValid = false;

        } else if (preg_match ( &#39;/\\.\\./&#39;, $local )) {

            // local part has two consecutive dots

            $isValid = false;

        } else if (! preg_match ( &#39;/^[A-Za-z0-9\\-\\.]+$/&#39;, $domain )) {

            // character not valid in domain part

            $isValid = false;

        } else if (preg_match ( &#39;/\\.\\./&#39;, $domain )) {

            // domain part has two consecutive dots

            $isValid = false;

        } else if (! preg_match ( &#39;/^(\\\\.|[A-Za-z0-9!#%&`_=\\/$\&#39;*+?^{}|~.-])+$/&#39;, str_replace ( "\\\\", "", $local ) )) {

            // character not valid in local part unless

            // local part is quoted

            if (! preg_match ( &#39;/^"(\\\\"|[^"])+"$/&#39;, str_replace ( "\\\\", "", $local ) )) {

                $isValid = false;

            }

        }

        //5.3.0 This function is now available on Windows platforms.

        if ($isValid && ! (checkdnsrr ( $domain, "MX" ) || checkdnsrr ( $domain, "A" ))) {

            // domain not found in DNS

            $isValid = false;

        }

    }

    return $isValid;

}

登录后复制

                   

本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门推荐
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板