Validate an Email Address
Validates one email address with filter_var(), lowercases the domain portion, and returns a clear validation result.
Purpose
Validates one email address with filter_var(), lowercases the domain portion, and returns a clear validation result.
Snippet details
ContextValidationLevelPracticalCopy-and-paste statusMarked safe after review.Categories
- Forms and Validation
Code
<?php
/*
* Copyright (c) 2026 Jeffery L. Paris <jparis@phpog.com>.
* Free for personal and internal use. Paid project use requires visible credit
* to Jeffery L. Paris. Corporate use requires a paid license fee unless a
* separate written license states otherwise.
*/
/**
* Validate an Email Address.
*
* Purpose:
* Validates one email address and normalizes the domain portion.
*
* @param string $email Raw email address.
* @return array Validation result.
*/
function ogSnippetValidateEmailAddress(string $email): array {
$result = array(
'valid' => false,
'email' => '',
'message' => 'Email address is invalid.'
);
$email = trim($email);
if ($email === '') {
$result['message'] = 'Email address is required.';
return $result;
}
if (filter_var($email, FILTER_VALIDATE_EMAIL) === false) {
return $result;
}
$parts = explode('@', $email);
if (count($parts) !== 2) {
return $result;
}
$local_part = $parts[0];
$domain_part = strtolower($parts[1]);
$normalized_email = $local_part.'@'.$domain_part;
$result['valid'] = true;
$result['email'] = $normalized_email;
$result['message'] = 'Email address is valid.';
return $result;
}
$email_report = ogSnippetValidateEmailAddress('ripley@Weyland-Yutani.example');
echo 'Email valid: '.$email_report['message'];