RE: Email with pregmatch

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



I found this on google, does this LONG function do anything more then your
preg_match?

	function isEmail($emailstr) {
	    // Make the email address lower case and remove whitespace
	    $emailstr = strtolower(trim($emailstr));
	    
	    // Split it up into before and after the @ symbol
	    $email_components = explode('@', $emailstr);
	    
	    // Check that there is only one @ symbol
	    if (count($email_components) != 2)
	        return FALSE;
	    
	    // Check that the username is >= 1 char
	    if (strlen($email_components[0]) == 0)
	        return FALSE;
	    
	    // Split the domain part into the dotted parts
	    $domain_components = explode('.', $email_components[1]);
	    
	    // check there are at least 2
	    if (count($domain_components) < 2)
	        return FALSE;
	    
	    // Check each domain part to ensure it doesn't start or end with
a bad char
	    foreach ($domain_components as $domain_component)
	      if ( strlen($domain_component) > 0 ) {
	        if ( preg_match('/[\.-]/', $domain_component[0])
	          || preg_match('/[\.-]/',
$domain_component[strlen($domain_component)-1]) )
	          return FALSE;
	      } else
	        return FALSE;
	
	
	    // Check the last domain component has 2-6 chars (.uk to
.museum)
	    $domain_last = array_pop($domain_components);
	    if (strlen($domain_last) < 2 || strlen($domain_last) > 6)
	        return FALSE;
	    
	    // Check for valid chars - Domains can only have A-Z, 0-9, .,
and the - chars,
	    // or be in the form [123.123.123.123]
	    if ( preg_match('/^\[(\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3})\]$/',
$email_components[1], $ipnum) )
	        return (ip2long($ipnum[1]) === false ? false : true);
	
	    if ( preg_match('/^[a-z0-9\.-]+$/', $email_components[1]) )
	        return TRUE;
	
	    // If we get here then it didn't pass
	    return FALSE;
	}

/Peter
________________________________________
From: Dave Goodchild [mailto:buddhamagnet@xxxxxxxxx] 
Sent: Sunday, August 27, 2006 8:47 PM
To: Peter Lauri
Cc: php-general@xxxxxxxxxxxxx
Subject: Re:  Email with pregmatch


Try this:

preg_match("/^([a-zA-Z0-9.])+@([a-zA-Z0-9_-])+(\.[a-zA-Z0-9_-]+)+/",
$_POST['email']);





-- 
http://www.web-buddha.co.uk 
http://www.projectkarma.co.uk 

-- 
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php


[Index of Archives]     [PHP Home]     [Apache Users]     [PHP on Windows]     [Kernel Newbies]     [PHP Install]     [PHP Classes]     [Pear]     [Postgresql]     [Postgresql PHP]     [PHP on Windows]     [PHP Database Programming]     [PHP SOAP]

  Powered by Linux