E-Mail in PHP validieren
-
Verwenden Sie die Funktion
filter_var()
undFILTER_VALIDATE_EMAIL
, um die E-Mail in PHP zu validieren -
Verwenden Sie die Funktionen
FILTER_VALIDATE_EMAIL
,FILTER_SANITIZE_EMAIL
undfilter_var()
, um die E-Mail in PHP zu validieren -
Verwenden Sie die Funktion
preg_match()
, um die E-Mail gemäß dem regulären Ausdruck zu validieren
Wir werden eine Methode zur Validierung einer E-Mail-Adresse in PHP mit der Funktion filter_var()
und der Filternamen-ID FILTER_VALIDATE_EMAIL
vorstellen. Die Funktion filter_var()
verwendet die E-Mail als erstes Argument und den Filternamen FILTER_VALIDATE_EMAIL
, um die E-Mail gegen die Syntax in RFC 822 zu validieren. Diese Methode prüft das gültige E-Mail-Format und nicht die gültige E-Mail.
Wir werden auch eine andere Methode zur Validierung von E-Mail-Adressen in PHP demonstrieren, indem wir die Filternamen-IDs FILTER_SANITIZE_EMAIL
und FILTER_VALIDATE_EMAIL
zusammen mit der Funktion fiter_var()
verwenden. Diese Methode bereinigt zuerst die E-Mail-Adresse und validiert dann die E-Mail-Adresse.
Wir werden eine weitere Methode zur Validierung von E-Mails in PHP mit dem regulären Ausdruck vorstellen. Diese Methode verwendet die Funktion preg_match()
, um zu prüfen, ob die E-Mail gemäß dem angegebenen regulären Ausdruck gültig ist.
Verwenden Sie die Funktion filter_var()
und FILTER_VALIDATE_EMAIL
, um die E-Mail in PHP zu validieren
Wir können die Funktion filter_var()
verwenden, um eine Variable mit einem bestimmten Filternamen zu filtern. Der Filtername FILTER_VALIDATE_EMAIL
gibt an, dass die E-Mail überprüft werden muss. Die Funktion verwendet als ersten Parameter die E-Mail-Adresse als String und als zweiten Parameter die oben angegebene Filter-ID. So können wir die bereitgestellte E-Mail auf ihre Gültigkeit überprüfen. Die Funktion gibt die gefilterten Daten zurück, wenn die Funktion erfolgreich ist oder false zurückgibt. Die E-Mail wird als gültig bezeichnet, nicht in dem Sinne, dass die E-Mail existiert. Die Filter-ID validiert die E-Mail anhand der Syntax in RFC 822. Wir können die Validierung von E-Mails mit einer gültigen und einer ungültigen E-Mail testen.
Erstellen Sie beispielsweise eine Funktion validateEmail()
, die einen Parameter $email
übernimmt. Verwenden Sie die Funktion filter_var()
auf die Variable $email
und geben Sie als zweiten Parameter die Filter-ID FILTER_VALIDATE_EMAIL
an. Wenden Sie die Bedingung if-else
auf die Funktion filter_var()
an. Zeigen Sie im if
-Block die Meldung an, dass die E-Mail gültig ist, und im else
-Zustand, dass die E-Mail ungültig ist. Rufen Sie die Funktion außerhalb der Funktion zweimal auf. Geben Sie im ersten Funktionsaufruf das Argument peter.piper@iana.org
und first.last@example.123
an.
beim zweiten Anruf.
Wir können davon ausgehen, dass auf die im Beispiel angegebene E-Mail-Adresse aus einem Formular über die Variable $_POST
zugegriffen wird. Die Funktion im folgenden Beispiel wird zweimal aufgerufen. Der erste Aufruf übergibt eine gültige E-Mail-Adresse und die zweite Adresse eine ungültige E-Mail. Die zweite E-Mail-Adresse ist ungültig, da sie Zahlen in der Top-Level-Domain enthält. Das Ergebnis ist ebenso offensichtlich.
Beispielcode:
#php 7.x
<?php
function validateEmail($email) {
if(filter_var($email, FILTER_VALIDATE_EMAIL)) {
echo "{$email}: A valid email"."<br>";
}
else {
echo "{$email}: Not a valid email"."<br>";
}
}
validateEmail('peter.piper@iana.org');
validateEmail('first.last@example.123');
?>
Ausgabe:
phppeter.piper@iana.org: A valid email
first.last@example.123:Not a valid email
Verwenden Sie die Funktionen FILTER_VALIDATE_EMAIL
, FILTER_SANITIZE_EMAIL
und filter_var()
, um die E-Mail in PHP zu validieren
Wir können die zusätzliche Filternamen-ID FILTER_SANITIZE_EMAIL
in der ersten Methode verwenden, um alle unzulässigen Zeichen aus einer E-Mail-Adresse zu entfernen. Die Filternamen-ID ist das zweite Argument in der Funktion filter_var()
, wobei die E-Mail-Adresse das erste Argument ist. Die Funktion gibt die bereinigte E-Mail zurück. Wir können die Funktion erneut verwenden, um die Gültigkeit der E-Mail-Adresse nach der Bereinigung zu überprüfen. Dazu können wir der ersten Methode folgen, indem wir die Filternamen-ID FILTER_VALIDATE_EMAIL
verwenden.
Erstellen Sie beispielsweise eine Variable $email
und speichern Sie eine E-Mail-Adresse mit unzulässigen Zeichen darin. Speichern Sie die E-Mail ram(.mugu)@exa//mple.org
als String in der Variablen. Verwenden Sie die Funktion filter_var()
für die Variable und verwenden Sie die ID FILTER_SANITIZE_EMAIL
als zweiten Parameter. Speichern Sie die Funktion in derselben Variablen $email
. Wenden Sie dann die if-else
-Anweisung wie in der ersten Methode an. Verwenden Sie diesmal die E-Mail FILTER_VALIDATE_EMAIL
als Filternamen in der Funktion. Zeigen Sie auf ähnliche Weise die Nachrichten an.
Im Beispiel unten wird eine E-Mail-Adresse mit einem unzulässigen Zeichen verwendet, und die Funktion filter_var()
filtert diese Zeichen und bereinigt die bereitgestellte E-Mail. Die im Beispiel angegebene E-Mail-Adresse enthält unzulässige Zeichen wie ()
und //
. Die Funktion entfernt zuerst diese Zeichen aus der E-Mail und validiert dann die E-Mail.
Beispielcode:
#php 7.x
<?php
$email = "ram(.mugu)@exa//mple.org";
$email = filter_var($email, FILTER_SANITIZE_EMAIL);
if(filter_var($email, FILTER_VALIDATE_EMAIL)) {
echo "{$email}: A valid email"."<br>";
}
else{
echo "{$email}:Not a valid email"."<br>";
}
?>
Ausgabe:
ram.mugu@example.org: A valid email
Verwenden Sie die Funktion preg_match()
, um die E-Mail gemäß dem regulären Ausdruck zu validieren
Wir können die Funktion preg_match()
verwenden, um die E-Mail-Adresse in PHP zu validieren. Diese Methode verwendet den regulären Ausdruck für die Validierungsregel der E-Mail. Wir können selbst einen regulären Ausdruck erstellen und die Regeln für eine gültige E-Mail definieren. Die Funktion preg_match()
verwendet zwei Parameter, wobei der erste der reguläre Ausdruck und der zweite die zu prüfende E-Mail ist. Wir können den ternären Operator verwenden, um die Gültigkeit der E-Mail zusammen mit der Funktion zu überprüfen.
Erstellen Sie beispielsweise zwei Variablen, $email_first
und $email_secon
, und speichern Sie zwei E-Mail-Adressen in diesen Variablen. Hinterlegen Sie zuerst eine gültige E-Mail firstlast11@gmail.com
und im zweiten eine ungültige firstlast@11gmail,com
. Schreiben Sie eine Funktion validateEmail()
, die einen Parameter benötigt. Nennen Sie den Parameter $email
. Schreiben Sie innerhalb der Funktion einen regulären Ausdruck in die Variable $regex
wie im Beispielcode. Dann schreiben Sie einen ternären Operator, wobei die zu prüfende Bedingung die Funktion preg_match()
ist. Nehmen Sie $regex
als ersten Parameter und $email
als zweiten Parameter. Drucken Sie die Nachricht, dass die E-Mail gültig ist, wenn die Bedingung wahr ist, und die Nachricht, dass die E-Mail ungültig ist, wenn die Bedingung falsch ist. Echo des gesamten ternären Ausdrucks. Rufen Sie ausserhalb der Funktion die Funktion validateEmail()
zweimal auf. Verwenden Sie im ersten Funktionsaufruf die Variable $email_first
und im zweiten Funktionsaufruf die Variable $email_second
.
Im folgenden Beispiel haben wir einen regulären Ausdruck geschrieben, der eine Regel zum Validieren der E-Mail erstellt. Eine gültige E-Mail enthält einen Empfängernamen, das Symbol @
, eine Domain und eine Top-Level-Domain. Der oben erstellte Regex-Ausdruck akzeptiert den Empfängernamen als alphanumerische Werte. Das Alphabet besteht aus Groß- und Kleinbuchstaben. Es akzeptiert auch einen Punkt. Die E-Mail muss das Zeichen @
enthalten. Die Domäne enthält nur die Alphabete. Die E-Mail sollte dann einen Punkt haben. Die Top-Level-Domain sollte nur aus den Alphabeten bestehen und eine Länge von zwei oder drei haben. Der Regex-Ausdruck wird basierend auf dieser Regel erstellt. Die erste E-Mail ist gültig, da sie alle Regeln erfüllt, die zweite E-Mail ist jedoch ungültig. Sie ist ungültig, da der Domainname eine Zahl enthält und vor der Top-Level-Domain kein Punkt steht.
Beispielcode:
# php 7.x
<?php
$email_first = 'firstlast11@gmail.com';
$email_second ='firstlast@11gmail,com';
function validateEmail($email) {
$regex = "/^([a-zA-Z0-9\.]+@+[a-zA-Z]+(\.)+[a-zA-Z]{2,3})$/";
echo preg_match($regex, $email) ? "The email is valid"."<br>" :"The email is not valid";
}
validateEmail($email_first);
validateEmail($email_second);
?>
Ausgabe:
The email is valid
The email is not valid
Subodh is a proactive software engineer, specialized in fintech industry and a writer who loves to express his software development learnings and set of skills through blogs and articles.
LinkedIn