Maison > développement back-end > tutoriel php > Comment faire correspondre des URL à l'aide d'expressions régulières ?

Comment faire correspondre des URL à l'aide d'expressions régulières ?

Patricia Arquette
Libérer: 2024-10-22 08:45:03
original
435 Les gens l'ont consulté

How to Match URLs Using Regular Expressions?

Faire correspondre des URL avec des expressions régulières

Les expressions régulières peuvent être intimidantes au début, mais elles offrent de puissantes capacités de correspondance de modèles pour divers types de données. Dans le contexte de l'extraction d'URL, un modèle flexible est nécessaire pour s'adapter aux variations de formats d'URL.

Une expression régulière robuste capable de capturer des URL avec ou sans protocoles principaux (par exemple, "http://www" ou " www") est :

((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
Copier après la connexion

Pour utiliser cette expression en PHP, placez-la entre guillemets doubles et transmettez-la à la fonction preg_match avec l'URL que vous souhaitez évaluer. Par exemple :

<code class="php">$url = 'www.example.com/etcetc';
if (preg_match("~^$regex$~i", $url)) {
    echo 'Matched URL without protocol';
}</code>
Copier après la connexion

De même, pour les URL avec des protocoles :

<code class="php">$url = 'http://www.example.com/etcetc';
if (preg_match("~^$regex$~i", $url)) {
    echo 'Matched URL with protocol';
}</code>
Copier après la connexion

Ce modèle doit couvrir un large éventail de formats d'URL tout en protégeant également contre les entrées malveillantes potentielles contenant des caractères tels que " /".

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!

source:php
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal