Google+ Tools
Make Google+ profile picture
Make Google plus banners for profile
Create and share your Google Plus profile banners.

Profile image for mrk studios thewickedchemist on June 2, 2012

Checks for fake DNS as well as utilizes regex functions to check the string for proper length & characters.

Language
PHP
Tags

Ultimate Email Validation PHP Function


<?php
function validateEmail($email)
  {
    $isValid = true;
    $atIndex = strrpos($email, "@");
    if (is_bool($atIndex) && !$atIndex)
      {
        $isValid = false;
      }
    else
      {
        $domain    = substr($email, $atIndex + 1);
        $local     = substr($email, 0, $atIndex);
        $localLen  = strlen($local);
        $domainLen = strlen($domain);
        if ($localLen < 1 || $localLen > 64)
          {
            $isValid = false;
          }
        else if ($domainLen < 1 || $domainLen > 255)
          {
            $isValid = false;
          }
        else if ($local[0] == '.' || $local[$localLen - 1] == '.')
          {
            $isValid = false;
          }
        else if (preg_match('/\\.\\./', $local))
          {
            $isValid = false;
          }
        else if (!preg_match('/^[A-Za-z0-9\\-\\.]+$/', $domain))
          {
            $isValid = false;
          }
        else if (preg_match('/\\.\\./', $domain))
          {
            $isValid = false;
          }
        else if (!preg_match('/^(\\\\.|[A-Za-z0-9!#%&`_=\\/$\'*+?^{}|~.-])+$/', str_replace("\\\\", "", $local)))
          {
            if (!preg_match('/^"(\\\\"|[^"])+"$/', str_replace("\\\\", "", $local)))
              {
                $isValid = false;
              }
          }
        if ($isValid && !(checkdnsrr($domain, "MX") || checkdnsrr($domain, "A")))
          {
            $isValid = false;
          }
      }
    return $isValid;
  }
?>

Comments

blog comments powered by Disqus