When filtering an email address filter_var()
will return the filtered data, in this case the email address, or false if a valid email address cannot be found:
var_dump(filter_var('[email protected]', FILTER_VALIDATE_EMAIL));
var_dump(filter_var('notValidEmail', FILTER_VALIDATE_EMAIL));
Results:
string(16) "[email protected]"
bool(false)
This function doesn't validate not-latin characters. Internationalized domain name can be validated in their xn--
form.
Note that you cannot know if the email address is correct before sending an email to it. You may want to do some extra checks such as checking for a MX record, but this is not necessary. If you send a confirmation email, don't forget to remove unused accounts after a short period.