I found this gem in my backups. It is to validate mails:
= 0)
{
if(filter_var($email, FILTER_VALIDATE_EMAIL) === FALSE) return FALSE;
}
// IF LOWER-LEVEL PHP, WE CAN CONSTRUCT A REGULAR EXPRESSION
else
{
$regex
= '/' // START REGEX DELIMITER
. '^' // START STRING
. '[A-Z0-9_-]' // AN EMAIL - SOME CHARACTER(S)
. '[A-Z0-9._-]*' // AN EMAIL - SOME CHARACTER(S) PERMITS DOT
. '@' // A SINGLE AT-SIGN
. '([A-Z0-9][A-Z0-9-]*\.)+' // A DOMAIN NAME PERMITS DOT, ENDS DOT
. '[A-Z\.]' // A TOP-LEVEL DOMAIN PERMITS DOT
. '{2,6}' // TLD LENGTH >= 2 AND =< 6
. '$' // ENDOF STRING
. '/' // ENDOF REGEX DELIMITER
. 'i' // CASE INSENSITIVE
;
// TEST THE STRING FORMAT
if (!preg_match($regex, $email)) return FALSE;
}
// FILTER_VAR OR PREG_MATCH DOES NOT TEST IF THE DOMAIN IS ROUTABLE
$domain = explode('@', $email);
// MAN PAGE: http://php.net/manual/en/function.checkdnsrr.php
if ( checkdnsrr($domain[1],"MX") || checkdnsrr($domain[1],"A") ) return TRUE;
// EMAIL IS NOT ROUTABLE
return FALSE;
}
// DEMONSTRATE THE FUNCTION IN ACTION
$e = NULL;
if (!empty($_GET["e"]))
{
$e = $_GET["e"];
if (check_valid_email($e))
{
echo "
VALID: $e \n";
}
else
{
echo "
BOGUS: $e \n";
}
}
// END OF PROCESSING - CREATE THE FORM USING HEREDOC NOTATION
$form = <<
TEST A STRING FOR A VALID EMAIL ADDRESS:
ENDFORM;
echo $form;