Heim > Artikel > Backend-Entwicklung > PHP verwendet einen regulären Ausdruck, um die URL in einem String abzurufen
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);
Das laufende Ergebnis ist:
( [0] => Array ( [0] => http://www.manongjc.com ) )
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] )
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"; ?>
Ausgabeergebnis:
<b>example: </b>, <div align=left>this is a test</div> example: , this is a test
Weitere Artikel zum Thema PHP, das reguläre Ausdrücke zum Abrufen von URLs in Strings verwendet, finden Sie auf der chinesischen PHP-Website!