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 replacer mots par lien dans page html


Sujet :

Langage PHP

  1. #1
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Octobre 2010
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2010
    Messages : 2
    Points : 1
    Points
    1
    Par défaut regex replacer mots par lien dans page html
    Bonjour,

    Je bloque sur la création du motif d'une expression régulière. malgré de nombreuses recherches sur internet, je n'arrive pas à trouver une solution.

    j'ai un texte html avec les paragraphes (<p></p>), liens (<a href ..></a>), etc

    j'ai une liste de groupes de mot ou de mots à remplacer par un lien spécifique au groupe de mot ou mot.

    Je cherche à faire un preg_replace de maniere à remplacer les groupes de mots dans ma liste par les liens associés, quand ils ne sont pas contenu dans un lien <a href></a>

    si je remplace toto titi tata par un lien
    si mon mot à remplacer est titi .. je ne dois pas le remplacer par un lien sinon j'aurais 2 liens <a href> imbriqués.

    si qqn a une idée lumineuse ?
    je le remercie grandement

  2. #2
    Expert éminent sénior

    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
    Points : 10 726
    Points
    10 726
    Par défaut
    pour parser du HTML c'est avec DOMDocument et pour faire tes requete c'est avec xpath

  3. #3
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Octobre 2010
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2010
    Messages : 2
    Points : 1
    Points
    1
    Par défaut
    en fait le texte est récupéré d'une base de données et je pensais faire le remplacement dans une fonction de mon controller php avant de l'afficher dans ma vue.
    Avec DOMDocument on peut savoir si un groupe de mot ou mot n'est pas contenu dans un lien <a href> ?

    j'avais trouvé ça comme motif :'#(?<!">)groupe de mot ou mot(?!.*</a>)#U'
    mais ça ne fonctionne pas dans tous les cas

    celles la non plus...
    '#[^(<a.+)]groupe de mot ou mot(?!.*<\/a>)#U'
    '#[^(<a.+>.*)]groupe de mot ou mot(?!.*<\/a>)#U'

  4. #4
    Expert éminent sénior

    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
    Points : 10 726
    Points
    10 726
    Par défaut
    Citation Envoyé par AudeB Voir le message
    Avec DOMDocument on peut savoir si un groupe de mot ou mot n'est pas contenu dans un lien <a href> ?
    oui avec la fonction contains

Discussions similaires

  1. [RegEx] supprimer <a href...</a> par regex dans pages html.
    Par moldak dans le forum Langage
    Réponses: 10
    Dernier message: 15/11/2012, 16h02
  2. [XSLT] lien sur xml dans page html
    Par paquita dans le forum XSL/XSLT/XPATH
    Réponses: 9
    Dernier message: 20/10/2006, 13h14
  3. [JSP][Struts][Debutant]Probleme de liens dans pages JSP
    Par bluefox_du_974 dans le forum Servlets/JSP
    Réponses: 5
    Dernier message: 08/12/2004, 16h17
  4. repositionnement dans page html
    Par Invité(e) dans le forum Balisage (X)HTML et validation W3C
    Réponses: 4
    Dernier message: 23/11/2004, 15h17
  5. Réponses: 4
    Dernier message: 15/12/2003, 17h46

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