How to validate an Email using PHP?

This article contains different methods to validate an email address in PHP. It uses regular expressions and inbuilt email validation function. The input string is taken from the user and matches it with the predefined regular expressions and if the regular expression and input string found to be matched than it returns true and proceed further.

Method 1: Email validation using regular expression.

filter_none

edit
close

play_arrow

link
brightness_4
code

<?php
// PHP program to validate email
  
// Function to validate email using regular expression
function email_validation($str) {
    return (!preg_match(
"^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,3})$^", $str))
        ? FALSE : TRUE;
}
  
// Function call
if(!email_validation("author@geeksforgeeks.com")) {
    echo "Invalid email address.";
}
else {
    echo "Valid email address.";
}
  
?>

chevron_right


Output:



Valid email address.

Explanation: In the above example, passing the email to the user defined function email_validation( $email ), which use this example and matches with the regular expression by using the predefined function preg_match(). This predefined function match the whole input with regular expression and returns True if match found otherwise returns False.

Method 2: Email validation using filter_var() method.

filter_none

edit
close

play_arrow

link
brightness_4
code

<?php
  
// Declare variable and initialize
// it to email
$email = "author@geeksforgeeks.com";
  
// Validate email
if (filter_var($email, FILTER_VALIDATE_EMAIL)) {
    echo("$email is a valid email address");
else {
    echo("$email is not a valid email address");
}
  
?>

chevron_right


Output:

author@geeksforgeeks.com is a valid email address

Explanation: In the above example, passing the input email address to the predefined function filter_var(), which takes two parameters as input email and second is type of email filter. This function filters the email and returns true or false.

Method 3: Email validation using FILTER_SANITIZE_EMAIL filter.

filter_none

edit
close

play_arrow

link
brightness_4
code

<?php
  
// Declare variable and store it to email
$email = "author.gfg@GeeksforGeeks.com";
  
// Remove all illegal characters from email
$email = filter_var($email, FILTER_SANITIZE_EMAIL);
  
// Validate Email
if (filter_var($email, FILTER_VALIDATE_EMAIL)) {
    echo("$email is a valid email address");
else {
    echo("$email is not a valid email address");
}
  
?> 

chevron_right


Output:

author.gfg@GeeksforGeeks.com is a valid email address

Explanation: In the above example, use FILTER_SANITIZE_EMAIL filter to remove all unsupported characters and then use FILTER_VALIDATE_EMAIL filter to validate email.



My Personal Notes arrow_drop_up

Check out this Author's contributed articles.

If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to contribute@geeksforgeeks.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.

Please Improve this article if you find anything incorrect by clicking on the "Improve Article" button below.