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 :

lien cliquable [RegEx]


Sujet :

Langage PHP

  1. #1
    Membre régulier

    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    133
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2003
    Messages : 133
    Points : 113
    Points
    113
    Par défaut lien cliquable
    Salut ! J'ai fait une fonction qui permet de détecter les liens et les rendre cliquables en les insérant dans une balise <a></a>

    Je viens de me rendre compte qu'elle ne fonctionne pas si le lien possède des variables de type GET, il bloque au symbole '&' pourtant je ne crois pas que ce soit un métacaractère

    Voici ce que j'utilise actuellement :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    preg_replace('!(http://|www.)[a-z0-9A-Z.?/=&_-]+!i','<a href="$0" target="_blank">$0</a>',$texte);
    Alors je ne sais pas si je n'ai pas les yeux en face des trous ou bien si il y a quelque chose dont je ne suis pas au courant

    Donc si vous savez ce qui cloche ... je vous écoute !

    Merci

  2. #2
    Expert éminent
    Avatar de Swoög
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    6 045
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 6 045
    Points : 8 339
    Points
    8 339
    Par défaut
    perso j'utilise ceci pour rendre les URLs cliquables :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    	$patterns[] = '§(^|\s)([a-zA-Z]{3,6}:/{0,3}\S*)(\s|$)§Us';
    	$replaces[] = ' <a href="$2" onclick="window.open(this.href); return false" class="blank">$2</a> ';
     
    	$patterns[] = '§(^|\s)(www\.\S*)(\s|$)§Us';
    	$replaces[] = ' <a href="http://$2" onclick="window.open(this.href); return false" class="blank">$2</a> ';
    	return preg_replace($patterns, $replaces, $TXT);
    C'est certainement plus large, mais ça ne m'a jamais fait défaut, par contre, pense à autoriser les ; dans ton pattern ainsi que les %

  3. #3
    Membre régulier

    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    133
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2003
    Messages : 133
    Points : 113
    Points
    113
    Par défaut
    Ah oui effectivement, en autorisant le ';' maintenant ça marche merci beaucoup !
    Je crois que j'ai même deviné pourquoi ! Ca a un rapport avec les &nbsp; et ces trucs là sûrement ...

    Encore merci

  4. #4
    Expert éminent
    Avatar de Swoög
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    6 045
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 6 045
    Points : 8 339
    Points
    8 339
    Par défaut
    Content d'avoir pu t'aider ^^

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

Discussions similaires

  1. [Lazarus] Lien cliquable
    Par JoseF dans le forum Lazarus
    Réponses: 2
    Dernier message: 04/01/2007, 13h15
  2. [RegEx] regex et lien cliquable
    Par Pallas4 dans le forum Langage
    Réponses: 1
    Dernier message: 22/09/2006, 12h57
  3. [Système] Créer un lien "cliquable"
    Par dams78 dans le forum Langage
    Réponses: 2
    Dernier message: 09/05/2006, 23h07
  4. [RegEx] Problème pour transformer les url en liens cliquable
    Par AlphaYoDa dans le forum Langage
    Réponses: 2
    Dernier message: 20/02/2006, 13h54

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