le MEMO du WEB développeur
••• PHP •••  Liste des Mémos, astuces et bonnes pratiques

Vérifier la validité d'une URL en PHP - Expression régulière

Pour vérifier qu'une adresse internet est d'un format valide, voici deux solutions.

Vérifier la validité de l'URL avec les expressions régulières :

$monUrl= "http://memo-web.fr";
if (preg_match('#^(http|https)://[\w-]+[\w.-]+\.[a-zA-Z]{2,6}#i', $monUrl))
{
    echo "Mon URL est valide";
}else{
    echo "MonURL n'est pas valide";
}

On vérifie avec les expressions régulières que la chaîne $monUrl commence par 'http://' ou 'https://' et l'on vérifie qu'elle se termine par un point suivi de 2 à 6 lettres.

Vérifier la validité de l'URL avec filter_var

La fonction PHP filter_var permet de filtrer une variable passée en paramètres à l'aide de différents filtres, l'un deux FILTER_VALIDATE_URL est concu pour filtrer les URL de protocole http

Si la variable n'a pas passé le filtre, la valeur de retour est vide.

$monUrl = "http://memo-web.fr";
$monUrl = filter_var($monUrl, FILTER_VALIDATE_URL);
if ($monUrl!='')
{
    echo "Mon URL est valide";
}else{
    echo "MonURL n'est pas valide";
}

 

publié le 13/08/2013 par Memo Web
Expression régulière
Commentaire :
Ok je vais revoir ce code et actualiser le mémo. Merci pour le retour
par tarabusk, le 13/03/2014
La première solution (la regex) ne fonctionne pas correctement : il manque une partie pour valider correctement l'URL, autrement ça passe sans le TLD :

preg_match('#^(http|https)://[\w-]+[\w.-]+\.[a-zA-Z]{2,20}\.[a-zA-Z]{2,5}#i', $value))

J'ai mis 20 caractère pour le NDD, de façon totalement arbitraire ...

Sinon, je ne connaissais pas le filter_var, c'est bien, mais ça ne passe pas terrible non plus : soit on ne renseigne pas le flag FILTER_FLAG_PATH_REQUIRED, et ça passe comme dans un moulin, sans TLD (ça vérifie juste le http://www), soit on le met, et là on est obligé de renseigner le slash de fin d'URL, ce que beaucoup d'internautes ne font pas.

Voilà, merci quand même pour le partage.
par inconnu, le 09/01/2014
Commenter le Mémo :

Mettre en gras les occurrences d'un mot dans une phrase en PHP
Fonction PHP pour réduire une chaîne à ses n premiers mots
Supprimer les paramètres d'URL de l'URL courante
Vérifier la validité du format d'un email en PHP - Expression régulière
Comment formater un grand nombre à l'affichage pour le rendre plus lisible (en PHP)
La superglobale $_SERVER et ses utilisations
Transmettre un nombre variable de paramètres dans une fonction PHP
Problème à l'affichage de l'heure en PHP - 2h de moins
Redimensionner une image en PHP
Bonne pratique : Syntaxes du if then else en PHP
Ajoutez vos propres Mémos sur MEMO-WEB

Il suffit de vous créer un compte sur le site

Vous pourrez choisir un thème parmis l'une des catégories proposées par MEMO-WEB.

Rédigez votre Mémo.
Après validation par MEMO-WEB, il sera mis en ligne.
Ajouter vos Mémos