比如,在用户注册程序中,我们经常要检测下输入的邮箱地址是否正确,可以用如下的代码:
<?php if (eregi("^[a-zA-Z0-9_]+@[a-zA-Z0-9-]+.[a-zA-Z0-9-.]+$]", $email)) { return FALSE; } ?>
或者这样:
<?php function checkmail($email){ return eregi("^[_a-z0-9-]+(.[_a-z0-9-]+)*@[a-z0-9-]+(.[a-z0-9-]+)*(.[a-z]{2,3})$", $email); } ?>
以上的代码中,只是简单的检测了邮箱格式是否正确,并没有针对具体域名进行检查。
假如要检查类似mailname@domainname.xxx中,@后面的部分。
可以通过检测域名,来更确切地判断邮箱地址是否有效。
代码如下:
<?php /** * 通过域名检测邮箱地址的有效性 * edit by www.jb200.com * 用到php函数getmxrr与fsockopen */ list($mailusername, $Domainname) = split("@",$myemail); if(getmxrr($Domainname, $MXHost)) { return TRUE; } else { if(fsockopen($Domainname, 25, $errno, $errstr, 30)) { return TRUE; } else { return FALSE; } } ?>