Validating an Email Address

This PHP function helps validate whether or not an email address is valid.

It uses a series of regex comparisons on the email address it is testing and returns true if it finds it valid and false if not.

<?php
function valid_email($email)
{
// First check that there's one @ symbol, and the lengths are right
if(!ereg("[^@]{1,64}@[^@]{1,255}", $email))
{
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;
}

// Check if domain is IP. If not, it should be valid domain name
if (!ereg("^\[?[0-9\.]+\]?$", $email_array[1]))
{
$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;
}
?>
Comments (0)
+ –