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

EDI, CMS, Outils, Scripts et API PHP Discussion :

Expression régulière sur URL


Sujet :

EDI, CMS, Outils, Scripts et API PHP

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    19
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2009
    Messages : 19
    Par défaut Expression régulière sur URL
    Bonjour,

    J'espère poster au bon endroit.

    Je cherche un script pour filtrer des messages publicitaires.

    J'aimerai en fait interdire tout message qui contient une invitation à venir visiter un site commercial du style:

    "venez faire un tour sur www.toto.com"

    - Ce doit pas être très dur à faire... mais je suis un newbee en Expression régulière
    - attention, je cherche à faire un truc qui tient compte du fait qu'une url peut prendre plusieurs formes:
    exemples:
    avec ou pas http ou https
    avec des chose comme ".fr" ".com" ".eu" etc...

    si vous avez quelques éclairages à me proposer ce serait génial :

    D'avance merci.

  2. #2
    Membre confirmé
    Homme Profil pro
    Webmaster
    Inscrit en
    Novembre 2010
    Messages
    111
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Novembre 2010
    Messages : 111
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ((http:\/\/|https:\/\/)?(www.)?(([a-zA-Z0-9-]){2,}\.){1,4}([a-zA-Z]){2,6}(\/([a-zA-Z-_\/\.0-9#:?=&;,]*)?)?)
    Elle est pas mal x)

  3. #3
    Expert confirmé

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Par défaut
    Citation Envoyé par Soull Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ((http:\/\/|https:\/\/)?(www.)?(([a-zA-Z0-9-]){2,}\.){1,4}([a-zA-Z]){2,6}(\/([a-zA-Z-_\/\.0-9#:?=&;,]*)?)?)
    Elle est pas mal x)
    pourquoi a-zA-Z ?
    pourquoi www ?

    le mieux c'est quand même le : (http:\/\/|https:\/\/)

  4. #4
    Membre confirmé
    Homme Profil pro
    Webmaster
    Inscrit en
    Novembre 2010
    Messages
    111
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Novembre 2010
    Messages : 111
    Par défaut
    http://eXample.Com renvois sur example.com (en tout cas sur chrome)

    La regex c'est:

    (http ou https ://) [non obligatoire] (www.) [non obligatoire] domaine [min maj nombre + sous domaine gerer ] . fr/com

  5. #5
    Expert confirmé

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Par défaut
    tu peux largement simplifier

    (?:https?:\/\/)?[^\/]+\.\w+\S+

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    19
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2009
    Messages : 19
    Par défaut
    super d'avoir des réponses aussi rapide.

    Les regex c'est encore du chinois pour moi mais ça va bien m'aider à avancer !

    Par contre quand j'utilise la solution de stealth35, ça me génère une erreur:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    if (preg_match('(?:https?:\/\/)?[^\/]+\.\w+\S+', 'bienvenue sur www.monsite.com'))
    {
        echo 'VRAI';
    }
    else
    {
        echo 'FAUX';
    }
    ça me génère:

    Warning: preg_match() [function.preg-match]: Unknown modifier '?'

    je crois comprendre qu'il faut échapper le ? mais c'est pire encore si je l'échappe....

    quelqu'un pour m'éclairer là dessus ?

    Mais si j'utilise la solution de Soull, ça ne génére aucune erreur
    et ça fonctionne presque à 100%:

    en fait sur:
    'bienvenue sur www.monsite.com' ==> affiche VRAI
    'bienvenue sur www.monsite' ==> affiche VRAI
    'bienvenue sur monsite' ==> affiche VRAI (c'est normal)
    'bienvenue sur http://monsite' ==> affiche FAUX (problème, le http n'est pas détecté)

  7. #7
    Expert confirmé

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Par défaut
    Citation Envoyé par dany013 Voir le message
    super d'avoir des réponses aussi rapide.

    Les regex c'est encore du chinois pour moi mais ça va bien m'aider à avancer !

    Par contre quand j'utilise la solution de stealth35, ça me génère une erreur:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    if (preg_match('(?:https?:\/\/)?[^\/]+\.\w+\S+', 'bienvenue sur www.monsite.com'))
    {
        echo 'VRAI';
    }
    else
    {
        echo 'FAUX';
    }
    ça me génère:

    Warning: preg_match() [function.preg-match]: Unknown modifier '?'

    je crois comprendre qu'il faut échapper le ? mais c'est pire encore si je l'échappe....

    quelqu'un pour m'éclairer là dessus ?

    Mais si j'utilise la solution de Soull, ça ne génére aucune erreur
    et ça fonctionne presque à 100%:

    en fait sur:
    'bienvenue sur www.monsite.com' ==> affiche VRAI
    'bienvenue sur www.monsite' ==> affiche VRAI
    'bienvenue sur monsite' ==> affiche VRAI (c'est normal)
    'bienvenue sur http://monsite' ==> affiche FAUX (problème, le http n'est pas détecté)
    oui t'as oublié le délimiteur...

  8. #8
    Membre averti
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    19
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2009
    Messages : 19
    Par défaut
    Citation Envoyé par stealth35 Voir le message
    oui t'as oublié le délimiteur...
    le délimiteur ? là je vois pas trop...

  9. #9
    Expert confirmé

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Par défaut
    Citation Envoyé par dany013 Voir le message
    le délimiteur ? là je vois pas trop...
    http://www.php.net/manual/fr/regexp....delimiters.php

  10. #10
    Membre averti
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    19
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2009
    Messages : 19
    Par défaut
    Ah ok !

    du coup j'ai fait avec les délimiteurs:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    if (preg_match('#(?:https?:\/\/)?[^\/]+\.\w+\S+#', 'bienvenue sur http://monsite'))
    C'est parfait ça marche et sans erreur,
    mais le test ne détecte toujours pas le "http"

  11. #11
    Expert confirmé

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Par défaut
    faillait plus mettre des / en délimiteurs

  12. #12
    Membre averti
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    19
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2009
    Messages : 19
    Par défaut
    Citation Envoyé par stealth35 Voir le message
    faillait plus mettre des / en délimiteurs
    j'ai pas bien compris, tu peux corriger mon exemple s.t.p ?

    ce sont les 2 solutions qui ne détectent pas le http:

  13. #13
    Expert confirmé

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Par défaut
    Citation Envoyé par dany013 Voir le message
    j'ai pas bien compris, tu peux corriger mon exemple s.t.p ?

    ce sont les 2 solutions qui ne détectent pas le http:
    '/(?:https?:\/\/)?[^\/]+\.\w+\S+/'

  14. #14
    Membre averti
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    19
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2009
    Messages : 19
    Par défaut
    Merci stealth35 de m'avoir répondu, mais ça ne marche toujours pas

    je sais je dois être un boulet mais je ne suis vraiment pas à l'aise avec les regex

    quand je fais:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    if (preg_match('/(?:https?:\/\/)?[^\/]+\.\w+\S+/' , 'bienvenue sur http://monsite'))
    {
        echo 'URL détectée';
    }
    else
    {
        echo 'Aucune URL';
    }
    J'ai comme réponse: 'Aucune URL'

  15. #15
    Expert confirmé

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Par défaut
    normale c'est pas une url valide...

  16. #16
    Membre averti
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    19
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2009
    Messages : 19
    Par défaut
    Merci pour toutes ces lumières,
    cela constitue une bonne base de réflexion
    pour aller plus loin dans ma démarche

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. expressions régulières sur url
    Par silvio7 dans le forum Général Python
    Réponses: 9
    Dernier message: 21/12/2011, 14h40
  2. [RegEx] Expression Régulière sur params url
    Par LeCaméléon dans le forum Langage
    Réponses: 4
    Dernier message: 14/11/2008, 14h40
  3. expression régulière sur une url
    Par Sh4dow49 dans le forum Général JavaScript
    Réponses: 22
    Dernier message: 20/08/2008, 21h32
  4. expression régulière sur flux
    Par zais_ethael dans le forum Collection et Stream
    Réponses: 2
    Dernier message: 19/09/2006, 23h38

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