Page 1 sur 1

regex url

Posté : 14 mars 2015, 22:14
par blinz
Salut.
J'ai une regex qui me permet de vérifier si l'url posté est valide
//Verification de la saise de l'adressee url
    if($_POST['website'] != "" && !preg_match("#^http://[w-]+[w.-]+.[a-zA-Z]{2,6}#i",$_POST['website'])){
	$erreurs['website'] = "Veuillez verifier la saisie de votre adresse url";
	}
actuellement ça accepte donc les adresse: http://www.nomdedomaine.fr
mais j'aimerais également accepté www.nomdedomaine.fr
Et ça coince ... merci pour vos solutions a venir ;)

Re: regex url

Posté : 14 mars 2015, 22:36
par tof73
à priori :
"#^(http://)?[w-]+[w.-]+.[a-zA-Z]{2,6}#i"

Re: regex url

Posté : 15 mars 2015, 00:53
par @rthur
Plutôt qu'une regex, je te conseille d'utiliser filter_var() avec le filtre de validation FILTER_VALIDATE_URL

Au moins tu es sûr ainsi de gérer tous les cas particuliers et les éventuelles évolutions possibles des url.
Pour gérer avec et sans le http://, il te suffit de faire un test de la variable rentrée et, si il est faux, refaire un test avec la variable entrée précédée de "http://"

Re: regex url

Posté : 18 mars 2015, 13:38
par blinz
Pour filter_validate_url pourquoi pas ...
par contre je n'ai pas compris ton test avec et sans http://

Si tu peut m'éclairer stp.

Ps: tof ton truc ne marche pas :/

Re: regex url

Posté : 18 mars 2015, 13:40
par blinz
pardon ton truc marche je voulais dire ( mais oui pourquoi pas utiliser filter_validate_url mais je n'ai pas compris cette histoire de test

Re: regex url

Posté : 18 mars 2015, 14:17
par @rthur
Tu regardes si filter_var($url,FILTER_VALIDATE_URL) est vrai :
- si c'est le cas, c'est que l'url est bonne
- si ce n'est pas le cas, tu regardes si filter_var('http://'.$url,FILTER_VALIDATE_URL) est vrai :
- si c'est le cas, c'est que l'url est bonne
- si ce n'est pas le cas, c'est que l'url est fausse