Heim  >  Artikel  >  Backend-Entwicklung  >  So überprüfen Sie das URL-Adressformat mit einem regulären PHP-Ausdruck

So überprüfen Sie das URL-Adressformat mit einem regulären PHP-Ausdruck

王林
王林Original
2023-06-24 09:51:072143Durchsuche

Mit der rasanten Entwicklung des Internets sind URL-Adressen zu einem unverzichtbaren Bestandteil des täglichen Lebens der Menschen geworden. Um bei der Webentwicklung sicherzustellen, dass die vom Benutzer eingegebene URL-Adresse vom System korrekt erkannt und verwendet werden kann, müssen wir eine Formatüberprüfung durchführen. In diesem Artikel wird erläutert, wie Sie mithilfe regulärer PHP-Ausdrücke das URL-Adressformat überprüfen.

1. Die Grundbestandteile der URL-Adresse

Bevor wir verstehen, wie das URL-Adressformat überprüft wird, müssen wir zunächst die Grundbestandteile der URL-Adresse verstehen. Normalerweise besteht eine Standard-URL-Adresse aus den folgenden Teilen:

1. Kommunikationsprotokollteil (Protokoll): Gibt das Protokoll für die Kommunikation zwischen dem Client und dem Server an. Zu den gängigen Protokollen gehören http und https.

2. Host-Teil (Host): Geben Sie den Hostnamen oder die IP-Adresse des zu verbindenden Servers an.

3. Portnummernteil (Port): Geben Sie die Portnummer an, die der zu verbindende Server verwendet. Dies ist im Allgemeinen ein Standardwert, der durch den Hostnamen und das Protokoll bestimmt wird.

4. Pfadteil (Pfad): Geben Sie den Pfad einer bestimmten Seite oder Datei auf dem Server an.

5. Abfragezeichenfolgenteil (Querystring): Zusätzliche Parameter, die vom Client an den Server übergeben werden.

6. Fragment-ID-Teil (Fragment-ID): Geben Sie einen Ort innerhalb der Ressource an.

2. PHP verwendet reguläre Ausdrücke, um das URL-Adressformat zu überprüfen.

In PHP kann die Verwendung der preg_match-Funktion mit regulären Ausdrücken das URL-Adressformat einfach überprüfen.

1. Überprüfen Sie das Kommunikationsprotokoll

Verwenden Sie den regulären Ausdruck /^https?:///, um zu überprüfen, ob das Kommunikationsprotokoll der URL-Adresse zulässig ist. Unter diesen stimmt ^ mit dem Anfang der Zeichenfolge überein, https? gibt die Wahl des http- oder https-Protokolls an und // gibt an, dass das Zeichen „//“ übereinstimmt.

Beispielcode:

$url = "http://www.example.com";
if(preg_match('/^https?:///', $url)){
    echo "通讯协议合法";
} else {
    echo "通讯协议不合法";
}

2. Überprüfen Sie den Hostnamen.

Verwenden Sie den regulären Ausdruck /^[A-Za-z0-9.-]+.[A-Za-z]{2,}$/, um die URL zu überprüfen Der Hostname der Adresse ist zulässig. Darunter bedeutet [A-Za-z0-9.-], dass der Hostname Buchstaben, Zahlen, Bindestriche und Punkte enthalten kann, + bedeutet, dass er einmal oder mehrmals übereinstimmt, .[A-Za-z]{2,}$ Zeigt an dass es mit einem Punkt übereinstimmt, gefolgt von einer Zeichenfolge aus mindestens zwei Buchstaben, und die Zeichenfolge muss das Ende der URL-Adresse sein.

Beispielcode:

$url = "http://www.example.com";
if(preg_match('/^[A-Za-z0-9.-]+.[A-Za-z]{2,}$/', parse_url($url, PHP_URL_HOST))){
    echo "主机名合法";
} else {
    echo "主机名不合法";
}

3. Überprüfen Sie die Portnummer

Verwenden Sie den regulären Ausdruck /:d+$/, um zu überprüfen, ob die Portnummer der URL-Adresse zulässig ist. Darunter: bedeutet die Übereinstimmung mit dem Doppelpunkt, d+ bedeutet die Übereinstimmung mit einer oder mehreren Ziffern und die Zahl muss das Ende der URL-Adresse sein.

Beispielcode:

$url = "http://www.example.com:8888";
if(preg_match('/:d+$/', parse_url($url, PHP_URL_PORT))){
    echo "端口号合法";
} else {
    echo "端口号不合法";
}

4. Pfad überprüfen

Verwenden Sie den regulären Ausdruck /^[/w.-]+$/, um zu überprüfen, ob der Pfad der URL-Adresse zulässig ist. Unter diesen entspricht ^ dem Anfang der Zeichenfolge, [/w.-]+ bedeutet, dass der Pfad Schrägstriche, Buchstaben, Zahlen, Unterstriche und Punkte enthalten kann und mit mindestens einem Zeichen übereinstimmt, und $ bedeutet, dass er mit dem Ende der Zeichenfolge übereinstimmt .

Beispielcode:

$url = "http://www.example.com/path/to/page.html";
if(preg_match('/^[/w.-]+$/', parse_url($url, PHP_URL_PATH))){
    echo "路径合法";
} else {
    echo "路径不合法";
}

5. Abfragezeichenfolge überprüfen

Verwenden Sie den regulären Ausdruck /^?.+$/, um zu überprüfen, ob die Abfragezeichenfolge der URL-Adresse zulässig ist. Unter diesen entspricht ^ dem Anfang der Zeichenfolge, ? bedeutet Übereinstimmung mit dem Fragezeichenzeichen, .+ bedeutet Übereinstimmung mit mindestens einem Zeichen und $ bedeutet Übereinstimmung mit dem Ende der Zeichenfolge.

Beispielcode:

$url = "http://www.example.com/path/to/page.html?param=value";
if(preg_match('/^?.+$/', parse_url($url, PHP_URL_QUERY))){
    echo "查询字符串合法";
} else {
    echo "查询字符串不合法";
}

6. Überprüfen Sie das vollständige Format der URL-Adresse

Mit den oben genannten fünf regulären Ausdrücken können wir nacheinander überprüfen, ob jeder Teil der URL-Adresse zulässig ist. Ein häufigerer Ansatz besteht jedoch darin, sie zu kombinieren, um zu überprüfen, ob das vollständige Format der gesamten URL-Adresse zulässig ist.

Zum Beispiel kann der folgende reguläre Ausdruck überprüfen, ob das vollständige Format der URL-Adresse zulässig ist:

/^https?://[A-Za-z0-9.-]+.[A-Za-z]{2,}(:d+)?(/[w.-]*)*(?.*)?$/i

wobei i bedeutet, dass die Groß- und Kleinschreibung nicht beachtet werden soll. Dieser reguläre Ausdruck enthält mehrere Unterausdrücke, mit denen überprüft wird, ob das Kommunikationsprotokoll, der Hostname, die Portnummer, der Pfad und die Abfragezeichenfolge zulässig sind.

Beispielcode:

$url = "http://www.example.com/path/to/page.html?param=value";
if(preg_match('/^https?://[A-Za-z0-9.-]+.[A-Za-z]{2,}(:d+)?(/[w.-]*)*(?.*)?$/i', $url)){
    echo "URL地址合法";
} else {
    echo "URL地址不合法";
}

Zusammenfassung:

In diesem Artikel wird erläutert, wie Sie reguläre PHP-Ausdrücke verwenden, um das URL-Adressformat zu überprüfen. Indem wir überprüfen, ob das Kommunikationsprotokoll, der Hostname, die Portnummer, der Pfad und die Abfragezeichenfolge zulässig sind, können wir die Gültigkeit der URL-Adresse schnell erkennen und sicherstellen, dass das System die vom Benutzer eingegebene URL-Adresse korrekt verwenden kann.

Das obige ist der detaillierte Inhalt vonSo überprüfen Sie das URL-Adressformat mit einem regulären PHP-Ausdruck. 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