Filed Under (PHP Code Samples) by AJ on May-15-2007
Code (php)

<?php
function check_email($email) //Function to check email validity
{
// First, we check that there's one @ symbol, and that the lengths are right
if (!ereg("^[^@]{1,64}@[^@]{1,255}$", $email))
{
// Email invalid because wrong number of
//characters in one section, or wrong number of @ symbols.
return false;
}
// Split it into sections to make life easier
$email_array = explode("@", $email);
$local_array = explode(".", $email_array[0]);
for ($i = 0; $i < sizeof($local_array); $i++)
{
if (!ereg(
"^(([A-Za-z0-9!#$%&'*+/=?^_`{|}~-][A-Za-z0-9!#$%&'*+/=?^_`{|}~\.-]{0,63})|(\"[^(\\|\")]{0,62}\"))$",
$local_array[$i]))
{
        return false;
}
}
if (!ereg("^\[?[0-9\.]+\]?$", $email_array[1]))
{ // Check if domain is IP. If not, it should be valid domain name
        $domain_array = explode(".", $email_array[1]);
        if (sizeof($domain_array) < 2)
                {
                        return false; // Not enough parts to domain
                }
        for ($i = 0; $i < sizeof($domain_array); $i++)
                {
                if (!ereg("^(([A-Za-z0-9][A-Za-z0-9-]{0,61}[A-Za-z0-9])|([A-Za-z0-9]+))$",
 $domain_array[$i]))
                        {
                        return false;
                        }
                }
}
return true;
}
// Example Usage

$good_email = "sd@example.com";
$bad_email = "al.c";

$a = check_email($good_email);// returns true
$b = check_email($bad_email);// returns false
?>
 


Jeffrey04 on May 16th, 2007 at 9:04 am #

nice trick, what if I need to validate a list of email separated by comma?

Post a comment
Name: 
Email: 
URL: 
Comments: