„Wenn ein Arbeiter seine Arbeit gut machen will, muss er zuerst seine Werkzeuge schärfen.“ – Konfuzius, „Die Gespräche des Konfuzius. Lu Linggong“
Titelseite > Programmierung > Wie ordne ich URLs mithilfe regulärer Ausdrücke zu?

Wie ordne ich URLs mithilfe regulärer Ausdrücke zu?

Veröffentlicht am 10.11.2024
Durchsuche:356

How to Match URLs Using Regular Expressions?

Abgleichen von URLs mit regulären Ausdrücken

Reguläre Ausdrücke können zunächst einschüchternd sein, bieten aber leistungsstarke Mustervergleichsfunktionen für verschiedene Datentypen. Im Zusammenhang mit dem Extrahieren von URLs ist ein flexibles Muster erforderlich, um Variationen in URL-Formaten Rechnung zu tragen.

Ein robuster regulärer Ausdruck, der URLs mit oder ohne führende Protokolle erfassen kann (z. B. „http://www“ oder „ www") ist:

((https?|ftp)://)? // Optional SCHEME
([a-z0-9 !*(),;?&=$_.-] (:[a-z0-9 !*(),;?&=$_.-] )?@)? // Optional User and Pass
([a-z0-9\-\.]*)\.(([a-z]{2,4})|([0-9]{1,3}\.([0-9]{1,3})\.([0-9]{1,3}))) // Host or IP address
(:[0-9]{2,5})? // Optional Port
(/([a-z0-9 $_%-]\.?) )*/? // Path
(\?[a-z &\$_.-][a-z0-9;:@&%= /$_.-]*)? // Optional GET Query
(#[a-z_.-][a-z0-9 $%_.-]*)? // Optional Anchor

Um diesen Ausdruck in PHP zu verwenden, schließen Sie ihn in doppelte Anführungszeichen ein und übergeben Sie ihn zusammen mit der URL, die Sie auswerten möchten, an die Funktion preg_match. Zum Beispiel:

$url = 'www.example.com/etcetc';
if (preg_match("~^$regex$~i", $url)) {
    echo 'Matched URL without protocol';
}

Ähnlich für URLs mit Protokollen:

$url = 'http://www.example.com/etcetc';
if (preg_match("~^$regex$~i", $url)) {
    echo 'Matched URL with protocol';
}

Dieses Muster sollte ein breites Spektrum an URL-Formaten abdecken und gleichzeitig vor potenziell böswilligen Eingaben schützen, die Zeichen wie „/“ enthalten.

Freigabeerklärung Dieser Artikel wird unter folgender Adresse abgedruckt: 1729557858 Bei Verstößen wenden Sie sich bitte an [email protected], um ihn zu löschen
Neuestes Tutorial Mehr>

Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.

Copyright© 2022 湘ICP备2022001581号-3