"Geoff Soper" <ne***********@alphaworks.co.uk> wrote in message
news:3f*********************@news.dial.pipex.com.. .
I've been looking for a simple way of checking that a string is an e-mail
address. I don't need to check if the address exists, just if the format
of the string matches. There seem to be lots of different methods, can
someone suggest which is the best, with justification. I'm not looking for total
accuracy, I'd much rather let a few false positives through than get any
false negatives.
Many thanks
This is a PHP version of a JavaScript I found that performs syntax checking
on an email address... There is sufficient remarks in it to let you know the
checks that it does - you just pass it an email address and it will return
"TRUE" or "FALSE" pending if its valid or not. Note, I return my TRUE and
FALSE as a string (ie, inside double quotes) and not as a CONSTANT or INT.
Function (and an example of usage) is below:
function verifyEmail($emailAddress)
{
// Return "TRUE" if we believe $email is a valid email address,
// else return "FALSE"
// First - make sure it has an @ sign and ensure that each side
// of the @ sign has enough characters to be a valid address
$pos = strpos($emailAddress, "@");
if ($pos === false) { // note: three equal signs
return("FALSE");
}
list($email, $domain)=explode("@", $emailAddress);
if( (strlen($email)==0) || (strlen($domain)<2) )
{ return("FALSE"); }
// make sure the top level of the domain name is no less than
// two characters, and no greater than four characters in order
// to allow .uk, .com, .info, .net etc...
$domains=explode(".", $domain);
// Make sure the right side of the @ sign (the domain) is made
// up of at least two subdomains (ie @xyz.com and not just @com)
if(count($domains)>1)
{ $tld=array_pop($domains);
// Make sure the top level domain is NOT less than 2 char in length
// and not greater than 4 char in length
if( (strlen($tld)<2) || (strlen($tld)>4) )
{ return("FALSE"); }
}
return("TRUE");
}
$e**********@large.com;
if(verifyEmail($example)=="FALSE")
{
die("Email address $example is NOT valid.");
}
print("<hr>Email address $example is believed to be fine and dandy.<hr>");