IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

Vérifier syntaxe URL


Sujet :

Langage PHP

  1. #1
    Membre régulier
    Homme Profil pro
    Webmaster
    Inscrit en
    Avril 2006
    Messages
    264
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Avril 2006
    Messages : 264
    Points : 105
    Points
    105
    Par défaut Vérifier syntaxe URL
    Bonjour, je cherche une regex pour vérifier la syntaxe des url, j'en ai trouvé plusieurs mais aucune ne marche vraiment bien.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    function verif_url($url) {	$motif_url=('^^http(s)?://([a-zA-Z0-9-]+.)?([a-zA-Z0-9-]+.)?[a-zA-Z0-9-]+\.[a-zA-Z]{2,4}(:[0-9]+)?(/[a-zA-Z0-9-]*/?|/[a-zA-Z0-9]+\.[a-zA-Z0-9]{1,4})?$');
    	if (!ereg($motif_url, $url)) {
    		return 'Champs non conforme';
    	}
    	else return("URL valide");
    }
    Celle la trouvée sur le forum me renvoi bon que pour les adresses du style :http://www.juanperdomo.com/fra mais pas les adresses classiques en .com

    si quelqu'un en a déjà une qui fonctionne bien pour tous types d'adresse je veux bien la consulter.
    Merci bcp

  2. #2
    Membre chevronné
    Avatar de gwinyam
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2006
    Messages
    1 162
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mai 2006
    Messages : 1 162
    Points : 2 015
    Points
    2 015
    Par défaut
    Salut, je te mets juste mon motif allégé:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    #^http(s)?://([A-Z0-9][A-Z0-9.]*.)?[A-Z0-9][A-Z0-9.]{2,}.[A-Z]{2,4}#i
    Il vérifie juste pour la partie du domaine. C'est à dire qu'il ne vérifie pas la validité de l'arborescence ni les paramètres passés dans l'URL.

    J'ai déjà écrit un modèle plus complexe qui le fait en plus de gérer aussi le protocole FTP et les ancres, mais je ne l'ai plus en tête et ne l'ai pas à disposition dans l'immédiat. Envoie moi un MP si ça t'intéresse.

  3. #3
    Membre régulier
    Homme Profil pro
    Webmaster
    Inscrit en
    Avril 2006
    Messages
    264
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Avril 2006
    Messages : 264
    Points : 105
    Points
    105
    Par défaut
    ton expression ne marche pas pour les adresses contenant des - ou _ .
    j'essaye de faire en sorte que oui mais c'est pas évident.

  4. #4
    Membre régulier
    Homme Profil pro
    Webmaster
    Inscrit en
    Avril 2006
    Messages
    264
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Avril 2006
    Messages : 264
    Points : 105
    Points
    105
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    function verif_url($url) {
    		$motif_url=("^^http://([a-zA-Z0-9-]+.)?([a-zA-Z0-9-]+.)?[a-zA-Z0-9-]+\.[a-zA-Z]{2,4}(:[0-9]+)?(/[a-zA-Z0-9-]*)?(.[a-zA-Z0-9]{1,4})?$");
    		if (!ereg($motif_url, $url)) {
    			return 'Champs non conforme';
    		}
    		else return("URL valide");
    	}
    	echo verif_url("http://www.france-patrimoine.fr/liens/index.php"); echo "<br />";
    	echo verif_url("http://www.lequipe.fr"); echo "<br />";
    	echo verif_url("http://www.juanperdomo.com/fra"); echo "<br />";
    seule la 1ere url n'est dites pas bonne

  5. #5
    Membre confirmé Avatar de SphynXz
    Développeur Web
    Inscrit en
    Mars 2008
    Messages
    439
    Détails du profil
    Informations personnelles :
    Âge : 38

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mars 2008
    Messages : 439
    Points : 547
    Points
    547
    Par défaut
    si ta version de php est >= php 5.2, tu peux utiliser filter_var($url, FILTER_VALIDATE_URL)

  6. #6
    Membre chevronné
    Avatar de gwinyam
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2006
    Messages
    1 162
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mai 2006
    Messages : 1 162
    Points : 2 015
    Points
    2 015
    Par défaut
    Ah oui effectivement, j'ai oublié une possibilité.
    Correction:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    #^http(s)?://([A-Z0-9][A-Z0-9.]*.)?[A-Z0-9][A-Z0-9\-.]{2,}.[A-Z]{2,4}#i
    En fait, ce que t'as oublié, c'est d'échapper le -


    Je confirme pour la méthode si PHP>=5.2, il est préférable de l'utiliser si possible

    Si tu utilises les ZendFramework, de mémoire, il y a un Validator pour ça aussi

Discussions similaires

  1. Comment vérifier une URL saisie dans mon formulaire ?
    Par cdevl32 dans le forum Général JavaScript
    Réponses: 14
    Dernier message: 28/10/2007, 19h32
  2. Fonction vérifier syntaxe de date OK sur IE et KOs sur firefox
    Par aymen007 dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 17/10/2007, 17h16
  3. Générateur de code Java : vérifier syntaxe, etc.
    Par Yannick_from_31 dans le forum Langage
    Réponses: 3
    Dernier message: 14/09/2007, 13h40
  4. [MySQL] Vérifier une URL dans la validation d'un formulaire
    Par groupejtt dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 30/11/2006, 12h48
  5. Vérifier une url, altenatives à fsockopen
    Par gendo dans le forum Langage
    Réponses: 4
    Dernier message: 14/09/2004, 22h35

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo