Heim > Backend-Entwicklung > PHP-Tutorial > Reguläre PHP-Ausdrücke: Wie alle Links in HTML abgeglichen werden

Reguläre PHP-Ausdrücke: Wie alle Links in HTML abgeglichen werden

王林
Freigeben: 2023-06-22 14:08:01
Original
1447 Leute haben es durchsucht

Bei der Webentwicklung müssen wir uns häufig mit Links in HTML-Seiten befassen. Wie verwende ich reguläre PHP-Ausdrücke, um alle Links in einer HTML-Seite abzugleichen? Finden wir es weiter unten heraus.

Links in HTML-Seiten werden im Allgemeinen über das -Tag implementiert, und wir können Links basierend auf diesem Tag zuordnen. Zuerst müssen wir den Quellcode der HTML-Seite über die Funktion file_get_contents() von PHP abrufen, zum Beispiel:

$html = file_get_contents('http://www.example.com');
Nach dem Login kopieren

Als nächstes können wir reguläre Ausdrücke verwenden, um alle Links abzugleichen. Das Folgende ist ein einfacher regulärer Ausdruck, der Links zuordnet:

$pattern = '/<a href="https://www.php.cn/link/d28a3097fa7cf63ad01c4f328314e2f2">https://www.php.cn/link/d28a3097fa7cf63ad01c4f328314e2f2</a>/';
Nach dem Login kopieren

Im regulären Ausdruck stimmt mit einem Link-Tag überein, das mit beginnt und mit dem href-Attribut beginnt. href="https://www.php.cn/link/2b9bd744f7c0d06123d9d9557310fa80" entspricht der Linkadresse. Die Klammern zeigen an, dass es sich um eine erfassende Gruppe handelt, was bedeutet, dass wir die Variable $matches verwenden können, um später auf das Übereinstimmungsergebnis zuzugreifen. >(.?) stimmt mit dem Linktext überein und ist auch eine Erfassungsgruppe.

Als nächstes können wir die Funktion preg_match_all() verwenden, um den regulären Ausdruck auf den Quellcode der HTML-Seite anzuwenden, um alle Links abzugleichen:

preg_match_all($pattern, $html, $matches);
Nach dem Login kopieren

Die Funktion gibt ein Array $matches zurück, wobei $matches[0] alle passenden Links enthält In der Zeichenfolge des Links entspricht $matches[1] der Erfassungsgruppe 1, also der Linkadresse, und $matches[2] entspricht der Erfassungsgruppe 2, also dem Linktext.

Schließlich können wir das Array $matches[1], das Link-Adress-Array, durchlaufen, um die Adressen aller Links zu erhalten:

foreach ($matches[1] as $link) {
    echo $link . "
";
}
Nach dem Login kopieren

Der vollständige Code lautet wie folgt:

$html = file_get_contents('http://www.example.com');
$pattern = '/<a href="https://www.php.cn/link/d28a3097fa7cf63ad01c4f328314e2f2">https://www.php.cn/link/d28a3097fa7cf63ad01c4f328314e2f2</a>/';
preg_match_all($pattern, $html, $matches);

foreach ($matches[1] as $link) {
    echo $link . "
";
}
Nach dem Login kopieren

Beachten Sie, dass dieser reguläre Ausdruck dies kann nur mit dem grundlegenden Linkformat übereinstimmen, zum Beispiel:

<a href="http://www.example.com">Example</a>
Nach dem Login kopieren

Wenn der Link andere Attribute enthält oder das Etikettenformat nicht den grundlegenden Anforderungen entspricht, wird er nicht abgeglichen. In praktischen Anwendungen kann der reguläre Ausdruck nach Bedarf geändert werden, um ihn an verschiedene Linkformate anzupassen.

Zusammenfassend lässt sich sagen, dass Sie zur Verwendung regulärer PHP-Ausdrücke zum Abgleichen von Links in HTML-Seiten die Funktion file_get_contents() verwenden können, um den Seitenquellcode abzurufen, dann die Funktion preg_match_all() und entsprechende reguläre Ausdrücke verwenden, um den Abgleich abzuschließen, und schließlich Schleife durch die passenden Ergebnisse, das ist Can.

Das obige ist der detaillierte Inhalt vonReguläre PHP-Ausdrücke: Wie alle Links in HTML abgeglichen werden. 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
Aktuelle Ausgaben
PHP-Datenerfassung?
Aus 1970-01-01 08:00:00
0
0
0
PHP-Erweiterung intl
Aus 1970-01-01 08:00:00
0
0
0
Wie man PHP gut lernt
Aus 1970-01-01 08:00:00
0
0
0
Mehrere PHP-Versionen
Aus 1970-01-01 08:00:00
0
0
0
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage