Heim  >  Artikel  >  Backend-Entwicklung  >  Regulärer PHP-Ausdruck: So passen Sie alle Bildlinks in HTML an

Regulärer PHP-Ausdruck: So passen Sie alle Bildlinks in HTML an

PHPz
PHPzOriginal
2023-06-23 11:17:332233Durchsuche

In HTML-Seiten müssen wir oft Bildlinks für die Verwendung bei anderen Gelegenheiten extrahieren oder Bilder herunterladen, Stapelverarbeitung usw. durchführen. Derzeit können uns reguläre PHP-Ausdrücke dabei helfen, alle Bildlinks schnell und genau abzugleichen.

1. Bildlinks in HTML analysieren

In HTML erscheinen Bildlinks normalerweise in Form von a1f02c36ba31691bcfe87b2722de723b-Tags und ihr Format ist wie folgt:

<img src="image.jpg" alt="图片">

Unter diesen gibt das src-Attribut die Linkadresse an Bild. Im Allgemeinen sind die Formate von Bildlinks wie folgt:

  1. Relativer Link: /images/picture.jpg
  2. Absoluter Link: https://www.example.com/images/picture.jpg
  3. Link mit Parametern: https ://www.example.com/images/picture.jpg?size=large
  4. Relativer Pfadlink: ../images/picture.jpg

Wir müssen reguläre Ausdrücke schreiben, die diesen vier Linkformaten entsprechen.

2. PHP-Link zum Vergleich regulärer Ausdrücke

Es gibt viele Arten von regulären Ausdrucksfunktionen in PHP, von denen preg_match() die am häufigsten verwendete ist, mit der bestimmte Zeichenfolgen aus Text abgeglichen werden können. Das Folgende ist ein regulärer Ausdruck, der mit den oben genannten vier Bildlinkformaten übereinstimmen kann:

$pattern = '/<img.+?src=['"](.+?)['"].*?>/';

Dieser reguläre Ausdruck besteht aus mehreren Teilen:

  1. ['"] bedeutet Anführungszeichen, die mit doppelten oder einfachen Anführungszeichen übereinstimmen können.
  2. (.+?) bedeutet, mit jedem Zeichen übereinzustimmen, bis das nächste Anführungszeichen gefunden wird. Hier wird eine einfangende Gruppe verwendet, und $matches kann sein Wird im nachfolgenden Code-Array-Aufruf verwendet.
  3. .*? bedeutet nicht gierige Übereinstimmung eines beliebigen Zeichens Auf diese Weise können wir ein Array $imgUrls erhalten, das alle Bildlinks in einem bestimmten Format enthält. Wenn Sie nur Bildlinks in einem bestimmten Format abgleichen möchten, können Sie einige Änderungen am regulären Ausdruck vornehmen, z. B. nur Abgleiche mit absoluten Links:
  4. $html = file_get_contents('example.html'); // 读取 HTML 文件
    preg_match_all($pattern, $html, $matches); // 匹配链接
    $imgUrls = $matches[1]; // 获取匹配到的链接地址
    
Dieser reguläre Ausdruck fügt http oder https hinzu. Die Einschränkung des Protokoll-Headers besteht darin, dass nur absolute Links abgeglichen werden, die mit diesen beiden Protokollen beginnen entsprechenden Link entsprechend dem Linkformat und verwenden Sie dann die Funktion preg_match(), um alle Links schnell und genau zu extrahieren. Sie können auch eine ähnliche Methode verwenden

Das obige ist der detaillierte Inhalt vonRegulärer PHP-Ausdruck: So passen Sie alle Bildlinks in HTML an. 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