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 :

Regex pour url spéciale


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Inscrit en
    Décembre 2008
    Messages
    483
    Détails du profil
    Informations forums :
    Inscription : Décembre 2008
    Messages : 483
    Par défaut Regex pour url spéciale
    bonjour,

    je souhaite faire un regex afin de d'ajouter les balises "<a href></a>" à mes liens.

    Sauf que certains des liens ne sont pas comme d'habitudes. J'ai par exemple des url avec à la fin des "+" et plusieurs "."

    Or le regex que j'ai pour l'instant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    #https?://[a-z0-9._/-]+#i
    s'arrête dès le premier "."

    Or ce n'est pas ce que je veux...

    merci



    edit : on ma conseillé de venir poser ma question içi :
    (cf sujet :http://www.developpez.net/forums/d86...e/#post4952202)

    Je dois récupérer le contenu entre 2 mots

    mais le regex n'est pas bon...

  2. #2
    Membre éclairé
    Inscrit en
    Décembre 2008
    Messages
    483
    Détails du profil
    Informations forums :
    Inscription : Décembre 2008
    Messages : 483
    Par défaut
    Je viens de tester un regex trouvé sur developpez.com :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    	$text= eregi_replace(
       "(^|[ \t\r\n\(:,]+)?". //punctuation before URL
       //Protocole
       "((ftp|http|https|gopher|mailto|pop|smtp|news|nntp|telnet|wais|".
       "file|imap|prospero|peercast|ed2k|irc|aim|mime|ftam|pnm|rtsp|ldap):".
       "[A-Za-z0-9/](([A-Za-z0-9$|.+!*()\.,;/?:@&~=_-])|%[A-Fa-f0-9]{2})+".
       "[A-Za-z0-9/&#=_-]+)". //valid chars at the end of an URL
       "([\.\),:;? \t\r\n]+([^A-Za-z0-9/&%#=_-]|$))?", //punctuation not followed by valid char
     "\\1<a href='\\2' target=\"blank\">\\2</a>\\6", $text);
    Il me met bien mes liens correctement donc c'est cool, mais en contre-partie j'ai ceci :

    Deprecated: Function eregi_replace() is deprecated in...

  3. #3
    Membre éclairé
    Inscrit en
    Décembre 2008
    Messages
    483
    Détails du profil
    Informations forums :
    Inscription : Décembre 2008
    Messages : 483
    Par défaut
    Personne pour m'aider?

  4. #4
    Membre Expert
    Avatar de s.n.a.f.u
    Homme Profil pro
    Développeur Web
    Inscrit en
    Août 2006
    Messages
    2 760
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Août 2006
    Messages : 2 760
    Par défaut
    Il faut utiliser les fonctions PCRE (preg_match, etc...).
    Le motif que tu as trouvé s'adapte très facilement, et comme je n'ai pas le temps actuellement, je vais juste te conseiller d'aller voir le manuel.
    Le principe est juste d'ajouter des délimiteurs.

    More on this later.

  5. #5
    Membre éclairé
    Inscrit en
    Décembre 2008
    Messages
    483
    Détails du profil
    Informations forums :
    Inscription : Décembre 2008
    Messages : 483
    Par défaut
    ok je vais remplacer eregi_replace par preg_match, et au pire si ça ne marche pas je mettrais un '@' devant pour ne plus afficher cette erreur

  6. #6
    Membre éclairé
    Inscrit en
    Décembre 2008
    Messages
    483
    Détails du profil
    Informations forums :
    Inscription : Décembre 2008
    Messages : 483
    Par défaut
    Bon après avoir pas mal tenté, mon regex précédent fonctionne bien pour une url avec "http:" mais pas pour les url qui commence par "www."

    Après j'ai aussi tenté avec preg-replace mais je bloque

    J'aurai besoin de votre aide pour ce petit regex.

Discussions similaires

  1. [RegEx] PHP - Regex pour URL
    Par bart997 dans le forum Langage
    Réponses: 3
    Dernier message: 09/12/2010, 15h20
  2. regex pour tester un mail ou une URL
    Par rambc dans le forum Général Python
    Réponses: 10
    Dernier message: 23/02/2010, 12h37
  3. Aide pour Regex sur URL un peu spécial
    Par poppyto dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 01/12/2008, 13h21
  4. [RegEx] regex pour url
    Par temperature dans le forum Langage
    Réponses: 5
    Dernier message: 23/05/2008, 14h43

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