Heim  >  Artikel  >  Backend-Entwicklung  >  Regulärer PHP-Ausdruck: Wie alle E-Mail-Links in HTML abgeglichen werden

Regulärer PHP-Ausdruck: Wie alle E-Mail-Links in HTML abgeglichen werden

WBOY
WBOYOriginal
2023-06-22 10:49:54874Durchsuche

Ob auf einer Webseite oder in einer E-Mail, E-Mail-Links sind eines unserer gemeinsamen Elemente. Auf einer Webseite möchten wir möglicherweise alle E-Mail-Links auf einmal abgleichen und finden. An dieser Stelle kann dieses Ziel bequem durch die Verwendung der regulären Ausdrücke von PHP erreicht werden.

PHP ist eine weit verbreitete Server-Skriptsprache, die für Aufgaben wie die Verarbeitung von HTML-Formularen, die Erstellung dynamischer Webseiten und die Interaktion mit Datenbanken verwendet werden kann. Es gibt viele integrierte Funktionen in PHP, mit denen sich Zeichenfolgen und reguläre Ausdrücke einfach manipulieren lassen. Unter anderem wird die Funktion preg_match_all() verwendet, um alle Teilzeichenfolgen abzugleichen, die mit dem angegebenen regulären Ausdruck in einem Textstück übereinstimmen.

Als nächstes erklären wir, wie man die PHP-Funktion preg_match_all() verwendet, um alle E-Mail-Links in HTML abzugleichen.

  1. Erstellen Sie einen regulären Ausdruck

Zuerst müssen wir einen regulären Ausdruck erstellen, der mit allen E-Mail-Links übereinstimmt. Hier können wir erwägen, einen relativ einfachen regulären Ausdruck zu verwenden, um das Ziel zu erreichen. Beispielsweise können wir den folgenden regulären Ausdruck verwenden, um ein Standardformat für E-Mail-Links abzugleichen:

[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+.[A-Z]{2,}

Dieser reguläre Ausdruck kann mit einem Buchstaben oder einer Zahl beginnend übereinstimmen, gefolgt von einigen optionalen Zeichen (z. B. Punkt, Unterstrich, Pluszeichen, Minuszahl). usw.), gefolgt von einem @-Symbol und einem E-Mail-Domänennamen. Dabei besteht der Domänenname aus Buchstaben und Zahlen und kann mehrere durch Punkte getrennte Domänennamenebenen haben. Schließlich erfordert dieser reguläre Ausdruck auch, dass der Top-Level-Domain-Name der Domain aus zwei oder mehr Großbuchstaben besteht. Wir können diesen regulären Ausdruck in einer Variablen in PHP speichern, zum Beispiel:

$pattern = '/[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+.[A-Z]{2,}/';
  1. HTML-Dateiinhalt laden

Als nächstes müssen wir den Inhalt aus einer HTML-Datei lesen und ihn in einer Zeichenfolge in Variablen speichern. In PHP können wir die Funktion file_get_contents() verwenden, um den Inhalt einer beliebigen Netzwerk- oder lokalen Datei zu lesen. Beispielsweise können wir Inhalte aus einer lokalen Datei mit dem folgenden Code lesen:

$html = file_get_contents('test.html');
  1. Entspricht allen geeigneten E-Mail-Links

Jetzt haben wir einen regulären Ausdruck in der Variablen $pattern gespeichert und den Inhalt der HTML-Datei gespeichert in der $html-Variablen. Als nächstes können wir die PHP-Funktion preg_match_all() verwenden, um alle E-Mail-Links abzugleichen, die die Kriterien erfüllen. Diese Funktion muss drei Parameter übergeben: den abzugleichenden regulären Ausdruck, den abzugleichenden Text und ein Array zum Speichern der Abgleichsergebnisse.

Hier können wir den folgenden Code verwenden, um unser Ziel zu erreichen:

$matches = array(); 
preg_match_all($pattern, $html, $matches);

In diesem Code erstellen wir ein leeres Array $matches, um die Ergebnisse des regulären Ausdrucksabgleichs zu speichern. Verwenden Sie dann die Funktion preg_match_all(), um alle geeigneten E-Mail-Links abzugleichen und die Ergebnisse in der Variablen $matches zu speichern.

  1. Übereinstimmungsergebnisse ausgeben

Schließlich können wir die Variable $matches durchlaufen und alle passenden E-Mail-Links ausgeben. Beispielsweise können wir den folgenden Code verwenden, um die Übereinstimmungsergebnisse auszugeben:

foreach ($matches[0] as $match) {
    echo $match . "<br/>";
}

In diesem Code iterieren wir über das erste Element der Variablen $matches (d. h. das Array, das alle Übereinstimmungsergebnisse enthält) und fügen die Ergebnisse jeder Übereinstimmung hinzu werden auf dem Bildschirm ausgegeben.

Der vollständige Code lautet wie folgt:

$pattern = '/[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+.[A-Z]{2,}/';
$html = file_get_contents('test.html');
$matches = array(); 
preg_match_all($pattern, $html, $matches);

foreach ($matches[0] as $match) {
    echo $match . "<br/>";
}

Der obige Code kann alle E-Mail-Links aus einer Datei namens test.html abgleichen und die Ergebnisse auf dem Bildschirm ausgeben.

Zusammenfassung:

Um alle E-Mail-Links in PHP abzugleichen, können Sie die Funktion preg_match_all() und reguläre Ausdrücke verwenden. Zuerst müssen wir einen regulären Ausdruck erstellen, der einem Standardformat für E-Mail-Links entspricht. Dann müssen wir die Funktion file_get_contents() verwenden, um den HTML-Inhalt aus einer lokalen Datei oder Netzwerkdatei zu lesen und den Inhalt in einer String-Variablen zu speichern. Als Nächstes können wir die Funktion preg_match_all() verwenden, um alle geeigneten E-Mail-Links abzugleichen und die Ergebnisse in einem Array zu speichern. Schließlich können wir jede Übereinstimmung im Array durchlaufen und auf dem Bildschirm ausgeben.

Das obige ist der detaillierte Inhalt vonRegulärer PHP-Ausdruck: Wie alle E-Mail-Links in HTML abgeglichen werden. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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