Maison  >  Article  >  développement back-end  >  Comment vérifier la légitimité d'une URL à l'aide d'expressions régulières PHP

Comment vérifier la légitimité d'une URL à l'aide d'expressions régulières PHP

PHPz
PHPzoriginal
2023-06-24 08:44:411511parcourir

Dans le développement Web moderne, l'URL est déjà un concept très important. Dans nos sites Web et applications Web, l'URL peut être utilisée pour identifier l'emplacement des ressources et, dans de nombreux cas, les URL illégales doivent être traitées. Cet article explique comment utiliser les expressions régulières PHP pour vérifier la légitimité des URL.

Tout d’abord, nous devons comprendre ce qu’est une URL. URL est l'abréviation de Uniform Resource Locator, qui est utilisée pour identifier et décrire de manière unique les ressources sur Internet. L'URL contient plusieurs composants, tels que le protocole, le nom d'hôte, le chemin, etc. Le format d'une URL complète est généralement le suivant :

protocol://hostname[:port]/path[?query][#fragment]

Parmi eux, le protocole, le nom d'hôte et le chemin sont des parties obligatoires, et les autres parties sont facultatives. Ensuite, nous présenterons comment utiliser les expressions régulières PHP pour vérifier la légitimité des URL.

La première étape consiste à créer une expression régulière correspondant au format de l'URL. Étant donné que les formats des différentes URL sont assez différents, nous devons concevoir une expression régulière plus souple. Voici un exemple pour référence :

$pattern = '@^(https?|ftp)://[^s/$.?#].[^s]*$@i';

La signification de l'expression régulière ci-dessus est que l'URL doit commencer par un protocole, c'est-à-dire. , http, https ou ftp, suivi du symbole "://". Ensuite, suivez le nom d'hôte. Les caractères spéciaux tels que les espaces, $, ?, #, etc. ne peuvent pas exister dans le nom d'hôte. Le chemin peut contenir n'importe quel caractère. Enfin, il ne peut pas y avoir d'espace à la fin de l'URL entière, nous utilisons donc s pour représenter un espace et * pour représenter n'importe quel caractère.

Ensuite, nous devons écrire du code pour utiliser l'expression régulière que nous venons de créer pour vérifier la validité de l'URL. Voici un exemple de code :

function validateUrl($url) {
    $pattern = '@^(https?|ftp)://[^s/$.?#].[^s]*$@i';
    return preg_match($pattern, $url);
}

Dans le code ci-dessus, la fonction validateUrl nécessite un paramètre $url, qui est l'URL qui doit être vérifiée. La fonction preg_match est utilisée à l'intérieur de la fonction pour déterminer si l'URL correspond à l'expression régulière qui vient d'être créée. Si la correspondance réussit, 1 est renvoyé, sinon 0 est renvoyé.

Enfin, lors de l'utilisation du code ci-dessus, il suffit d'appeler la fonction validateUrl pour détecter la légitimité de l'URL. Voici un exemple de test :

$url1 = "http://www.example.com/path";
if (validateUrl($url1)) {
    echo "URL $url1 合法。
";
} else {
    echo "URL $url1 不合法。
";
}

$url2 = "http://www.example.com/path with space";
if (validateUrl($url2)) {
    echo "URL $url2 合法。
";
} else {
    echo "URL $url2 不合法。
";
}

Dans le code ci-dessus, nous avons testé deux URL : $url1 et $url2. La première URL est légale et ne contient aucun caractère spécial ni espace. La deuxième URL contient des espaces et est illégale. Le programme déterminera si l'URL est légale en fonction de la valeur de retour de la fonction validateUrl.

Pour résumer, cet article présente comment utiliser les expressions régulières PHP pour vérifier la légitimité des URL. Le problème de la validation d'URL peut être bien résolu en créant une expression régulière lâche et en appelant la fonction preg_match pour déterminer si l'URL est conforme au format.

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