Question

Is there any email filter in php other than FILTER_VALIDATE_EMAIL? I want . and @ to be compulsory in the user email.

Is there any built-in filter that can help me to accomplish this task?

Was it helpful?

Solution

FILTER_VALIDATE_EMAIL does it.

Without . :

<?php 

$email = "user@emailcom";
if(filter_var($email, FILTER_VALIDATE_EMAIL)){ 
    var_dump(filter_var($email, FILTER_VALIDATE_EMAIL)); 
}else{ 
    var_dump(filter_var($email, FILTER_VALIDATE_EMAIL));    
} 

// returns false

Without @ :

<?php 

$email = "useremail.com";
if(filter_var($email, FILTER_VALIDATE_EMAIL)){ 
    var_dump(filter_var($email, FILTER_VALIDATE_EMAIL)); 
}else{ 
    var_dump(filter_var($email, FILTER_VALIDATE_EMAIL));    
} 

// returns false too

With a correct mail :

<?php 

$email = "user@email.com";
if(filter_var($email, FILTER_VALIDATE_EMAIL)){ 
    var_dump(filter_var($email, FILTER_VALIDATE_EMAIL)); 
}else{ 
    var_dump(filter_var($email, FILTER_VALIDATE_EMAIL));    
} 

// returns user@email.com

OTHER TIPS

You want, that email contains dot (.) in his name? Like my.email@gmail.com? Maybe this could help...

This return true (with dot in name):

preg_match('/^[A-Z0-9._%+-]+\.[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,4}$/i', 'my.email@gmail.com')

This return false (without dot in name):

preg_match('/^[A-Z0-9._%+-]+\.[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,4}$/i', 'myemail@gmail.com')

FILTER_VALIDATE_EMAIL does NOT allow incomplete e-mail addresses to be validated. If you are using PHP >5.2, then this one is safe to use.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top