Eine Erklärung häufig verwendeter E-Mail-Verifizierungsanweisungen in PHP
Autor:Eve Cole
Aktualisierungszeit:2009-06-06 18:17:18
Ich glaube, dass jeder, der PHP gut studiert hat, die folgende Aussage zur E-Mail-Verifizierung kennen sollte, aber nicht viele können sie wirklich verstehen:
<?php
if (eregi("^[_.0-9a-z-]+@([0-9a-z][0-9a-z-]+.)+[az]{2,3}$",$ E-Mail)) {
echo „Ihre E-Mail hat die Vorprüfung bestanden“;
}
?>
In diesem Satz geht es zunächst darum, eine Eregi-Funktion anzuwenden, was ziemlich einfach zu verstehen ist. Suchen Sie einfach ein Buch und es wird Ihnen eine Erklärung geben:
Syntax: int ereg(String-Muster, String-String, Array [regs]);
Rückgabewert: Ganzzahl/Array Diese Funktion analysiert und vergleicht Zeichenfolgen basierend auf Musterregeln.
Der vom Vergleichsergebnis zurückgegebene Wert wird im Array-Parameter regs platziert. Der Inhalt von regs[0] ist die ursprüngliche Zeichenfolge, regs[1] ist die erste Zeichenfolge, die den Regeln entspricht, und regs[2] ist die zweite Zeichenfolge das entspricht den Regeln und so weiter. Wenn der Parameter regs weggelassen wird, wird er einfach verglichen und der Rückgabewert ist wahr, wenn er gefunden wird.
Was nicht leicht zu verstehen ist, ist der vorherige reguläre Ausdruck: ^[_.0-9a-z-]+@([0-9a-z][0-9a-z-]+.)+[ az]{2 ,3}$
In diesem regulären Ausdruck bedeutet „+“, dass die vorherige Zeichenfolge ein oder mehrere Mal hintereinander erscheinen muss; „^“ bedeutet, dass die nächste Zeichenfolge am Anfang erscheinen muss, und „$“ bedeutet, dass die vorherige Zeichenfolge am Ende erscheinen muss;
„.“ ist auch „.“, wobei „“ ein Escape-Zeichen ist; „{2,3}“ bedeutet, dass die vorherige Zeichenfolge zwei- bis dreimal hintereinander vorkommen kann. „()“ bedeutet, dass der enthaltene Inhalt auch im Zielobjekt erscheinen muss. „[_.0-9a-z-]“ bezeichnet jedes Zeichen, das in „_“, „.“, „-“, Buchstaben im Bereich von a bis z und Zahlen im Bereich von 0 bis 9 enthalten ist;
Auf diese Weise kann dieser reguläre Ausdruck wie folgt übersetzt werden:
„Die folgenden Zeichen müssen mit (^) beginnen“, „Das Zeichen muss in „_“, „.“, „-“, Buchstaben im Bereich von a bis z, Zahlen im Bereich von 0 bis 9 enthalten sein ([ _.0-9a-z-])“, „Das vorangehende Zeichen kommt mindestens einmal vor (+)“, @, „Die Zeichenfolge besteht aus einem Buchstaben im Bereich von a bis z, von 0 bis 9 beginnt mit a Zeichen in einer Zahl, gefolgt von mindestens einem in „-“ enthaltenen Zeichen, einem beliebigen Buchstaben im Bereich von a bis z, einer beliebigen Zahl im Bereich von 0 bis 9 und endet schließlich mit (([0-9a -z ][0-9a-z-]+.))“, „Das vorherige Zeichen kommt mindestens einmal vor (+)“, „Buchstaben im Bereich von a bis z kommen 2-3 mal vor und enden damit ([ az] {2,3}$)“
Es ist kompliziert, oder? Deshalb verwenden die Leute reguläre Ausdrücke.