Heim > Backend-Entwicklung > PHP-Tutorial > PHP verwendet einen regulären Ausdruck, um die URL in einem String abzurufen

PHP verwendet einen regulären Ausdruck, um die URL in einem String abzurufen

高洛峰
Freigeben: 2023-03-05 08:34:01
Original
1668 Leute haben es durchsucht

Nachdem ich heute ein Frage- und Antwortsystem geschrieben und online gegangen bin, habe ich festgestellt, dass viele Leute Links gepostet haben. Da die Geschäftsabteilung uns gebeten hat, Website-Adressen herauszufiltern, werde ich Ihnen eine Funktion zum Extrahieren von String-URL-Adressen vorstellen Der Code lautet wie folgt:

$str ='本文实例讲述了php匹配字符串里所有URL地址的方法。http://www.manongjc.com 分享给大家供大家参考';
 preg_match_all("/http:[\/]{2}[a-z]+[.]{1}[a-z\d\-]+[.]{1}[a-z\d]*[\/]*[A-Za-z\d]*[\/]*[A-Za-z\d]*/",$str,$array2);
print_r($array2);
Nach dem Login kopieren

Das laufende Ergebnis ist:

(
  [0] => Array
    (
      [0] => http://www.manongjc.com
    )
)
Nach dem Login kopieren

Die Funktion preg_match_all wird hier hauptsächlich verwendet Die Verwendung dieser Funktion ist wie folgt:

preg_match_all – Führen Sie einen globalen regulären Ausdrucksabgleich durch.

Syntax:

int preg_match_all ( string pattern, string subject, array matches [, int flags] )
Nach dem Login kopieren

Durchsuchen Sie den Betreff nach allen Inhalten das mit dem durch Muster angegebenen regulären Ausdruck übereinstimmt und das Ergebnis mit beendet. Die durch Flags angegebene Reihenfolge wird in Übereinstimmungen platziert.
Nachdem die erste Übereinstimmung gefunden wurde, beginnen nachfolgende Suchvorgänge am Ende der vorherigen Übereinstimmung.

Achten Sie besonders auf PREG_PATTERN_ORDER und PREG_SET_ORDER

Flags können eine Kombination der folgenden Flags sein (beachten Sie, dass es keinen Sinn macht, PREG_PATTERN_ORDER und PREG_SET_ORDER zusammen zu verwenden):

Wenn Sie verwenden PREG_PATTERN_ORDER

Sortieren Sie die Ergebnisse so, dass $matches[0] ein Array aller Musterübereinstimmungen ist, $matches[1] ein Array von Zeichenfolgen ist, die mit dem Untermuster in der ersten Klammer übereinstimmen, und so weiter. (Das heißt, $matches[0] [0] ist das zweite Element in allen Musterübereinstimmungen, $matches[0] [1] ist das zweite Element in allen Musterübereinstimmungen, $matches[1] [0] ist die Übereinstimmung für jedes Element. Das erste Element in Klammern, $matches[1] [0] entspricht dem zweiten Element in jeder Klammer)

<?php
preg_match_all ("|<[^>]+>(.*)</[^>]+>|U","<b>example: </b><div align=left>this is a test</div>",$out, PREG_PATTERN_ORDER);
/* http://www.manongjc.com/article/1591.html */
print $out[0][0].", ".$out[0][1]."\n";
print $out[1][0].", ".$out[1][1]."\n";
?>
Nach dem Login kopieren

Ausgabeergebnis:

<b>example: </b>, <div align=left>this is a test</div>
example: , this is a test
Nach dem Login kopieren

Weitere Artikel zum Thema PHP, das reguläre Ausdrücke zum Abrufen von URLs in Strings verwendet, finden Sie auf der chinesischen PHP-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