PHP verfügt über eine Methode zur Überprüfung Ihrer E-Mail-Adresse

*文
Freigeben: 2023-03-18 18:58:01
Original
2289 Leute haben es durchsucht

In diesem Artikel wird hauptsächlich die PHP-eigene Methode zum Überprüfen, ob das Postfach vorhanden ist, und die PHP-eigene Methode zum Überprüfen, ob die URL und die IP legal sind, vorgestellt. Interessierte Freunde können darauf verweisen. Ich hoffe, es hilft allen.

Es gibt viele Möglichkeiten, E-Mail-Adressen in PHP zu verifizieren. Die häufigste besteht darin, eigene reguläre Ausdrücke zu schreiben. PHP verfügt jedoch über eine eigene Methode zur Verifizierung.

filter_var

filter_var ist eine in PHP integrierte Variablenfiltermethode. Sie bietet viele praktische Filter, die zum Überprüfen von Ganzzahlen verwendet werden können Punktnummer, E-Mail, URL, MAC-Adresse usw.

Wenn filter_var false zurückgibt, bedeutet dies, dass die Variable den Filter nicht passieren kann, was bedeutet, dass sie illegal ist.


$email = "lastchiliarch@163.com";
var_dump(filter_var($email, FILTER_VALIDATE_EMAIL));
$email = "asb";
var_dump(filter_var($email, FILTER_VALIDATE_EMAIL));
$email = "1@a.com";
var_dump(filter_var($email, FILTER_VALIDATE_EMAIL));
Nach dem Login kopieren

Ausgabe:


string(21) "lastchiliarch@163.com"
bool(false)
string(7) 1@a.com
Nach dem Login kopieren

Für illegale Postfächer wie asb The Das Format hat „false“ zurückgegeben, aber für 1@a.com hat es bestanden, war aber immer noch leicht fehlerhaft.

Wenn jedoch die allgemeinen Regeln befolgt werden, wird 1@a.com als legitime E-Mail-Adresse betrachtet. Gibt es also eine Möglichkeit, dies genauer zu überprüfen?

checkdnsrr

checkdnsrr wird tatsächlich verwendet, um den DNS-Eintrag des angegebenen Hosts abzufragen. Wir können damit überprüfen, ob das Postfach vorhanden ist.

Für 1@a.com existiert der MX-Eintrag definitiv nicht.


$email = "lastchiliarch@163.com";
  var_dump(checkdnsrr(array_pop(explode("@",$email)),"MX"));
  $email = "1@a.com";
  var_dump(checkdnsrr(array_pop(explode("@",$email)),"MX"));
Nach dem Login kopieren

Ausgabe:


  bool(true)
  bool(false)
Nach dem Login kopieren

Wie Sie sehen können, ist es so Perfekt, der einzige Nachteil ist, dass es zu langsam ist, schließlich handelt es sich um eine Netzwerkanforderung. Daher ist es nicht geeignet, diese Methode zur gleichzeitigen Überprüfung einer großen Anzahl von Postfächern zu verwenden.

filter_var+checkdnsrr

Für die meisten illegalen Postfächer wird filter_var definitiv verwendet , und Sie können

checkdnsrr zur weiteren Beurteilung verwenden.


$email_arr = array("lastchiliarch@163.com", "1@a.com");
  foreach($email_arr as $email) {
    if (filter_var($email) === false) {
      echo "invalid email: $email \n";
      continue;
    }
 
    if(checkdnsrr(array_pop(explode("@",$email)),"MX") === false) {
      echo "invalid email: $email \n";
      continue;
    }
  }
Nach dem Login kopieren

Ausgabe:


invalid email: 1@a.com
Nach dem Login kopieren

Aber es sollte beachtet werden, dass dies der Fall ist Nur ein Prüf-MX-Eintrag, daher kann nur beurteilt werden, dass 163.com existiert, aber es kann nicht bewiesen werden, dass der Benutzer lastchiliarch existiert.

Wenn Sie die Existenz des Postfachs genauer bestimmen möchten, können Sie nur eine Verbindung zum SMTP-Server herstellen, um es zu überprüfen.

Eingeführte E-Mail-Überprüfung. PHP verfügt über eine eigene Methode, um zu überprüfen, ob die E-Mail, die URL und die IP legal sind. Hier ist eine Einführung:

Die Hauptsache ist die Verwendung der filter_var Funktion.

Syntax
filter_var(variable, filter, options)
variable Erforderlich. Gibt die zu filternden Variablen an.
Filter optional. Gibt die ID des zu verwendenden Filters an.
Optionen gibt ein Array an, das Flags/Optionen enthält. Überprüfen Sie die möglichen Flags und Optionen für jeden Filter.

PHP-Filter

Beispiel #1 Ein filter_var()-Beispiel


<?php
var_dump(filter_var(&#39;bob@example.com&#39;, FILTER_VALIDATE_EMAIL));
var_dump(filter_var(&#39;http://example.com&#39;, FILTER_VALIDATE_URL, FILTER_FLAG_PATH_REQUIRED));
?>
Nach dem Login kopieren

Die obige Routine gibt Folgendes aus:


string(15) "bob@example.com"
bool(false)
Nach dem Login kopieren

Verwandte Empfehlungen:

PHP-Code zur Prüfung, ob eine Zahl ungerade oder gerade ist

PHP-Code zur Prüfung, ob eine Datei oder ein Verzeichnis existiert

Grundlagen und einfache Beispiele für reguläre PHP-Ausdrücke

Das obige ist der detaillierte Inhalt vonPHP verfügt über eine Methode zur Überprüfung Ihrer E-Mail-Adresse. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage