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 et lien cliquable


Sujet :

Langage PHP

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    33
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 33
    Points : 21
    Points
    21
    Par défaut regex et lien cliquable
    Bonjour

    J'ai essayé de faire une regex pour faire une url cliquable à partir d'url écrites telles quelles dans un champ texte (comme dans les forums en fait)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $texte = $texte = preg_replace('#([^src=\"]|[^url\=])http://[a-z0-9._/-]+\.[a-z]+/([a-z0-9._/-])*(\?[a-z0-9._/-]+\=[a-z0-9._/-]+)#i', '<a href="$0">$0</a>', $texte);
    En fait, je regarde s'il n'y as pas des balises devant pour éviter les problèmes. Ensuite, je commence par regarder le nom de domaine, puis le . puis l'extention. Ensuite je regarde s'il n'y a pas un nom de dossier. Enfin je regarde s'il n'y a pas un paramètre. jusque là ça va.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $texte = $texte = preg_replace('#([^src=\"]|[^url\=])http://[a-z0-9._/-]+\.[a-z]+/([a-z0-9._/-])*(\?[a-z0-9._/-]+\=[a-z0-9._/-]+\&?)*#i', '<a href="$0">$0</a>', $texte);
    là j'ai rajouté une étoile à la fin et un \&? un peu avant. Mais PHP me remplace automatiquement le & par &amp; et les liens du genre :
    http://nom_de_domaine.ext?page=1&pag=2 deviennent :
    http://nom de domaine.ext?page=1&amp;pag=2

    quelqu'un a une idée ?
    Merci
    (PS je sais on trouve des regex sur les liens cliquables un peu partout mais j'aimerais comprendre mon erreur).

  2. #2
    Membre expérimenté

    Homme Profil pro
    Inscrit en
    Janvier 2004
    Messages
    1 249
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2004
    Messages : 1 249
    Points : 1 565
    Points
    1 565
    Par défaut
    ton erreur c'est que, quelque part dans ton traitement, AILLEURS que dans la regexp, tu utilise htmlentities ou htmlspecialchars avant d'afficher ta donnée...

    A noter qu'il est fortement conseillé de laisser cette fonction telle quelle, car l'enlever veux dire autoriser les balises comme <script> ou <iframe> qui sont des sources potentielles de problemes de sécurité. sinon tu remplace htmlentities par une fonction qui remplace *au moins* < par &lt; pour eviter ce genre de problemes

Discussions similaires

  1. Regex lien cliquable interfère avec BBcode image
    Par Jeanjan dans le forum Langage
    Réponses: 12
    Dernier message: 16/11/2014, 14h35
  2. [Système] Créer un lien "cliquable"
    Par dams78 dans le forum Langage
    Réponses: 2
    Dernier message: 09/05/2006, 23h07
  3. [RegEx] lien cliquable
    Par Michel_57 dans le forum Langage
    Réponses: 3
    Dernier message: 19/04/2006, 22h57
  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