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 les balises a [RegEx]


Sujet :

Langage PHP

  1. #1
    Membre éclairé
    Homme Profil pro
    Webmaster
    Inscrit en
    Avril 2006
    Messages
    264
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Avril 2006
    Messages : 264
    Par défaut REGEX pour les balises a
    Bonjour je souhaite récupérer une chaine dans des balises <a> mais bien sur si j'ai plusieurs <a></a><a></a> il faut que ma regex s'arrête au premier </a>.
    J'ai essayé plusieurs essais avec eregi et preg_match mais sans succès je n'arrive pas a combiner le fait qu'il puisse avoir n'importe quel caractère sauf les <>.
    Si quelqu'un aurait une proposition Merci d'avance.

  2. #2
    Membre éclairé
    Homme Profil pro
    Webmaster
    Inscrit en
    Avril 2006
    Messages
    264
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Avril 2006
    Messages : 264
    Par défaut plus
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    preg_match_all("|<a[^>]+>(.*)</[^>]+>|U",$contenu,$ou, PREG_SET_ORDER);
    Mais pour le moment je récupère un peu n'importe quoi.
    Moi je souhaite récupérer en fait le bloc
    <a [n'importe quoi ou rien] href="$lien" [n'importe quoi ou rien]> une chaine quelconque </a>

  3. #3
    Membre éclairé
    Homme Profil pro
    Webmaster
    Inscrit en
    Avril 2006
    Messages
    264
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Avril 2006
    Messages : 264
    Par défaut
    "#<a href=\"([^\"]+)\">(.*)</a>#Usi" cette expression me renvoi pour l'instant ce que je veux
    reste maintenant à insérer dans cette expression le lien $lien que je souhaite trouver mais j'essaye plusieurs choses mais rien de bon

  4. #4
    Membre émérite Avatar de Herode
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2005
    Messages
    825
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2005
    Messages : 825
    Par défaut
    Je ne suis pas sûr de comprendre ce que tu appelles 'récupérer le bloc'. Mais si tu veux une regex paramétrable en fonction du contenu de $lien, il suffit de placer cette variable dans la chaîne qui décrit ta regex :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    [$texte = ...]
    $matches = array();
    $regex = "#<a[^>]+?href=\"$lien\"[^>]*>(.*?)</a>#i";
    $out = preg_match($regex, $texte, $matches);
    où $matches contiendra le lien complet sous sa forme HTML en [0] et le textes entre les balises <a> et </a> en [1].

    NB : si href est délimité par des guillemets simples et non doubles, ça ne marchera plus. Il faut donc modifier un peu cette regex pour la rendre plus adaptable.

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

Discussions similaires

  1. [RegEx] Regex pour les entiers
    Par kenny.kev dans le forum Langage
    Réponses: 3
    Dernier message: 10/04/2008, 09h56
  2. Tuto pour les balises div
    Par Stu76 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 8
    Dernier message: 26/02/2008, 10h30
  3. [RegEx] Regex pour les accents et autres
    Par yule dans le forum Langage
    Réponses: 4
    Dernier message: 21/08/2006, 15h47
  4. Réponses: 4
    Dernier message: 16/07/2006, 14h00
  5. Réponses: 3
    Dernier message: 20/05/2006, 20h46

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