How to validate an Email using PHP?
Last Updated :
13 Feb, 2019
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.
php
<?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("[email protected]")) {
echo "Invalid email address.";
}
else {
echo "Valid email address.";
}
?>
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.
php
<?php
// Declare variable and initialize
// it to email
$email = "[email protected]";
// 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");
}
?>
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.
php
<?php
// Declare variable and store it to email
$email = "[email protected]";
// 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");
}
?>
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.