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 régulier
    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
    Points : 105
    Points
    105
    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 régulier
    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
    Points : 105
    Points
    105
    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 régulier
    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
    Points : 105
    Points
    105
    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 éprouvé 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
    Points : 933
    Points
    933
    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