Maison  >  Article  >  développement back-end  >  Comment vérifier le format de l'adresse URL avec l'expression régulière PHP

Comment vérifier le format de l'adresse URL avec l'expression régulière PHP

王林
王林original
2023-06-24 09:51:072143parcourir

Avec le développement rapide d'Internet, les adresses URL sont devenues un élément indispensable de la vie quotidienne des gens. Dans le développement Web, afin de garantir que l'adresse URL saisie par l'utilisateur peut être correctement reconnue et utilisée par le système, nous devons effectuer une vérification de format sur celle-ci. Cet article explique comment utiliser les expressions régulières PHP pour vérifier le format de l'adresse URL.

1. Les composants de base de l'adresse URL

Avant de comprendre comment vérifier le format de l'adresse URL, nous devons d'abord comprendre les composants de base de l'adresse URL. Habituellement, une adresse URL standard se compose des parties suivantes :

1. Partie du protocole de communication (protocole) : Spécifie le protocole de communication entre le client et le serveur. Les protocoles courants incluent les protocoles http et https.

2. Partie hôte (host) : Spécifiez le nom d'hôte ou l'adresse IP du serveur à connecter.

3. Partie numéro de port (port) : Spécifiez le numéro de port utilisé par le serveur à connecter, qui est généralement une valeur par défaut déterminée par le nom d'hôte et le protocole.

4. Partie chemin (chemin) : Spécifiez le chemin d'une page ou d'un fichier spécifique sur le serveur.

5. Partie chaîne de requête (querystring) : paramètres supplémentaires transmis par le client au serveur.

6. Identificateur de fragment : spécifiez un emplacement dans la ressource.

2. PHP utilise des expressions régulières pour vérifier le format de l'adresse URL

En PHP, l'utilisation de la fonction preg_match avec des expressions régulières peut facilement vérifier le format de l'adresse URL.

1. Vérifiez le protocole de communication

Utilisez l'expression régulière /^https?:/// pour vérifier si le protocole de communication de l'adresse URL est légal. Parmi eux, ^ correspond au début de la chaîne, https? signifie choisir l'un des protocoles http ou https, et // signifie correspondre au caractère "//".

Exemple de code :

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

2. Vérifiez le nom d'hôte

Utilisez l'expression régulière /^[A-Za-z0-9.-]+.[A-Za-z]{2,}$/ pour vérifier l'URL. le nom d'hôte de l'adresse est légal. Parmi eux, [A-Za-z0-9.-] signifie que le nom d'hôte peut contenir des lettres, des chiffres, des tirets et des points, + signifie correspondre une ou plusieurs fois, .[A-Za-z]{2,}$ Indique qu'il correspond à un point suivi d'une chaîne d'au moins deux lettres, et que la chaîne doit être la fin de l'adresse URL.

Exemple de code :

$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. Vérifiez le numéro de port

Utilisez l'expression régulière /:d+$/ pour vérifier si le numéro de port de l'adresse URL est légal. Parmi eux : signifie correspondre au caractère deux-points, d+ signifie correspondre à un ou plusieurs chiffres et le nombre doit être la fin de l'adresse URL.

Exemple de code :

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

4. Vérifiez le chemin

Utilisez l'expression régulière /^[/w.-]+$/ pour vérifier si le chemin de l'adresse URL est légal. Parmi eux, ^ correspond au début de la chaîne, [/w.-]+ signifie que le chemin peut contenir des barres obliques, des lettres, des chiffres, des traits de soulignement et des points, et correspond à au moins un caractère, et $ signifie correspond à la fin de la chaîne. .

Exemple de code :

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

5. Vérifiez la chaîne de requête

Utilisez l'expression régulière /^?.+$/ pour vérifier si la chaîne de requête de l'adresse URL est légale. Parmi eux, ^ correspond au début de la chaîne, ? signifie correspondre au caractère du point d'interrogation, .+ signifie correspondre à au moins un caractère et $ signifie correspondre à la fin de la chaîne.

Exemple de code :

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

6. Vérifiez le format complet de l'adresse URL

Avec les cinq expressions régulières ci-dessus, nous pouvons vérifier si chaque partie de l'adresse URL est légale une par une. Mais une approche plus courante consiste à les combiner pour vérifier si le format complet de l’adresse URL entière est légal.

Par exemple, l'expression régulière suivante peut vérifier si le format complet de l'adresse URL est légal :

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

où je veux dire insensible à la casse. Cette expression régulière contient plusieurs sous-expressions, qui sont utilisées pour vérifier si le protocole de communication, le nom d'hôte, le numéro de port, le chemin et la chaîne de requête sont légaux.

Exemple de code :

$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地址不合法";
}

Résumé :

Cet article explique comment utiliser les expressions régulières PHP pour vérifier le format de l'adresse URL. En vérifiant si le protocole de communication, le nom d'hôte, le numéro de port, le chemin et la chaîne de requête sont légaux, nous pouvons détecter rapidement la validité de l'adresse URL et garantir que le système peut utiliser correctement l'adresse URL saisie par l'utilisateur.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn