Heim  >  Artikel  >  Backend-Entwicklung  >  Wie ordne ich URLs mit oder ohne Protokoll- und Domänenpräfixe zu?

Wie ordne ich URLs mit oder ohne Protokoll- und Domänenpräfixe zu?

Barbara Streisand
Barbara StreisandOriginal
2024-10-22 08:47:02380Durchsuche

How to Match URLs with or Without Protocol and Domain Prefixes?

Abgleichen von URLs mit oder ohne Protokoll- und Domänenpräfixe

Bei der Arbeit mit URLs ist es oft notwendig, diese abzugleichen, unabhängig davon, ob sie das enthalten HTTP/HTTPS-Protokoll oder das Domänenpräfix „www“. Hier ist eine detaillierte Aufschlüsselung eines regulären Ausdrucks, um dies zu erreichen:

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

Erklärung:

  • SCHEMA (Optional): Übereinstimmungen „https“ oder „http“ am Anfang der URL.
  • Benutzer und Pass (optional): Entspricht dem durch einen Doppelpunkt getrennten Benutzernamen oder Passwort.
  • Host oder IP-Adresse:Erfasst den Domänennamen oder die IP-Adresse mithilfe einer Zeichenfolge mit Bindestrich, gefolgt von einem Punkt und einem Top-Level-Domänen- oder IP-Adressformat.
  • Port (optional): Entspricht einer Portnummer nach der Domäne.
  • Pfad (optional): Erfasst den Pfad der URL, der durch Schrägstriche getrennte Verzeichnisse und Dateinamen enthalten kann.
  • GET-Abfrage (Optional): Entspricht allen Abfrageparametern nach einem Fragezeichen.
  • Anker (Optional): Erfasst die Fragment-ID nach einem Hash.

Um diesen regulären Ausdruck zu prüfen, verwenden Sie die folgende Syntax:

<code class="php">preg_match("~^$regex$~i", $url, $m);</code>

Dadurch wird sichergestellt, dass die gesamte URL mit dem Muster übereinstimmt und alle optionalen Teile enthält. Durch die Verwendung dieses regulären Ausdrucks können Sie URLs in verschiedenen Formaten zuverlässig zuordnen.

Das obige ist der detaillierte Inhalt vonWie ordne ich URLs mit oder ohne Protokoll- und Domänenpräfixe zu?. 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