Maison >développement back-end >tutoriel php >Comment puis-je valider de manière fiable les adresses e-mail en PHP moderne ?

Comment puis-je valider de manière fiable les adresses e-mail en PHP moderne ?

DDD
DDDoriginal
2024-12-11 17:23:11502parcourir

How Can I Reliably Validate Email Addresses in Modern PHP?

Validation des e-mails en PHP : une approche moderne

Lorsque vous travaillez avec PHP, la validation des entrées utilisateur est cruciale pour garantir l'intégrité des données. Une tâche de validation courante consiste à vérifier les adresses e-mail. Voici une méthode simple et fiable pour la validation des e-mails à l'aide de PHP :

Utiliser filter_var() pour la validation des e-mails

La fonction filter_var() fournit un moyen pratique de valider les adresses e-mail :

$isValid = filter_var($email, FILTER_VALIDATE_EMAIL);

Cette fonction renvoie vrai si la chaîne d'entrée est une adresse e-mail valide ou faux sinon.

Dépréciation de ereg() et remplacement par preg_match()

Dans les anciennes versions de PHP, ereg() était utilisé pour la correspondance d'expressions régulières. Cependant, dans PHP 5.3 et versions ultérieures, il est obsolète et remplacé par preg_match() :

if (preg_match("/^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,3})$/", $email)) {
    return true;
}

Cette expression régulière vérifie :

  • Caractères (a-z, 0-9, _ , -)
  • Points (.) séparant les caractères
  • An Signe "@"
  • Un nom de domaine (caractères de type lettre suivis de points facultatifs et d'un TLD avec 2-3 lettres)

Considérations supplémentaires

  • Sensibilité à la casse : Notez que les adresses e-mail sont insensible à la casse.
  • Validation TLD : Par défaut, filter_var() de PHP ne valide pas l'existence d'un domaine de premier niveau (TLD) dans le nom de domaine. Vous pouvez ajouter une vérification d'expression régulière pour cela si nécessaire.
  • Encodage : Si vous attendez des caractères non-ASCII dans les e-mails, envisagez d'utiliser l'extension IDNA ou d'autres bibliothèques compatibles Unicode.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn