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 :

Retirer les liens dans une chaîne [RegEx]


Sujet :

Langage PHP

  1. #1
    Membre éprouvé

    Inscrit en
    Janvier 2006
    Messages
    969
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 969
    Points : 958
    Points
    958
    Par défaut Retirer les liens dans une chaîne
    Bonjour

    Je débute complètement avec les expressions régulières. Dans une chaîne contenant l'intégralité d'une page, y a-t-il un moyen de retirer les liens avec la fonction preg_replace ou ereg_replace ? Sachant que les balises <a> ne se ferment pas de manière distincte des autres, je n'arrive pas à les retirer sans enlever tout le code qui est après (jusqu'à </html> !).
    Je précise que dans cette chaîne, il y a plusieurs liens et toutes sortes de balises.
    En d'autres termes, comment faire pour trouver les portions de chaîne allant de "<a" à la première occurence de ">" ?

    Merci d'avance

  2. #2
    Expert éminent sénior
    Avatar de mathieu
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    10 234
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 234
    Points : 15 531
    Points
    15 531
    Par défaut
    tu peux t'inspirer des expressions régulières qui sont là :
    http://www.developpez.net/forums/showthread.php?t=49583

  3. #3
    Membre éclairé Avatar de Death83
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    1 667
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 1 667
    Points : 878
    Points
    878
    Par défaut
    avec un truc comme ca tu devrait t'en sortir:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $text=preg_replace('!<a [^<]*</a>!isU','',$text);
    Faut tester après si ca marche (j'ai fait ca à la volé sans tester).
    manganimes (en construction) -
    zemanga

  4. #4
    Membre éprouvé

    Inscrit en
    Janvier 2006
    Messages
    969
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 969
    Points : 958
    Points
    958
    Par défaut
    Merci pour vos suggestions.
    Pour ceux que ça intéresse, ma solution est :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $patterns = array("(<a[^>]+[^>]*>)" , "(</a>)");
    preg_replace($patterns,"",$text);

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

Discussions similaires

  1. [RegEx] Trouver tous les "/mot" dans une chaîne
    Par micatmidog dans le forum Langage
    Réponses: 7
    Dernier message: 31/03/2006, 12h07
  2. [TWebBrowser] Comment trouver tous les liens dans une page ?
    Par xenos dans le forum Composants VCL
    Réponses: 1
    Dernier message: 15/01/2006, 23h36
  3. Réponses: 7
    Dernier message: 14/09/2005, 10h50
  4. [LG]Retirer les blancs dans une chaine
    Par Andy_24DB dans le forum Langage
    Réponses: 16
    Dernier message: 25/02/2004, 16h30

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