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 :

Identifier toutes les balises <a href >


Sujet :

Langage PHP

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    51
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 51
    Par défaut Identifier toutes les balises <a href >
    Bonjour,
    Je débute dans les expression réguliere.
    j'aimerai, à partir d'un code source html ne récuperer que les balise href.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    chaine = aaaaa<a href= abcdef >bbbbb>>
    et je veux récupérer: 
    abcdef
    J'ai donc coder le script suivant:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    ereg("a href(.*)>","aaaaa<a href= abcdef >bbbbb>>" ,$out);
    mais le résultat obtenue est :
    Quelqu'un pourait il m'aider à trouver la bonne expression régulière?

    Merci pour toute votre aide!

  2. #2
    Membre chevronné
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    453
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 453
    Par défaut
    Essaye :

    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    $chaine = "aaaaa<a href= abcdef >bbbbb>>";
    $chaine = preg_replace("#href=(.*)>#i","$2",$chaine);
    echo $chaine;

    non testé.

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    51
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 51
    Par défaut
    merci pour ta réponse, mais le résultat obtenue est :
    J'essaie de voir de comprendre la syntaxe

  4. #4
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 661
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 76
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 661
    Billets dans le blog
    1
    Par défaut
    Premièrement il faut rediger du html correct

    une balise a c'est:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <a href="abcdef">bbbbb</a>
    Ensuite savoir ce que tu veux récupérer toute la balis ou juste le contenu du href ?
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    51
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 51
    Par défaut
    Merci pour ta réponse, je veux récupérer le contenu de ma balise,
    soit:Merci pour toute votre aide!

  6. #6
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 661
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 76
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 661
    Billets dans le blog
    1
    Par défaut
    avec un groupe nommé:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    $reg='#<a[^"]*"(?P<href>[^"]*)"[^>]*>[^<]*</a>#';
    $chaine = 'aaaaa<a href="abcdef" >bbbbb</a>';
    preg_match($reg,$chaine,$res);
    echo $res['href'];
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  7. #7
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    51
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 51
    Par défaut
    Merci pour ta réponse qui m'aide beaucoup.
    Toutefois je comprend pas tout.
    j'ai beau regarder les tuto je ne comprend pas # et aussi ?p<href>

    pourrais tu m'indiquer la spécification de ces meta-caractères?

  8. #8
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 661
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 76
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 661
    Billets dans le blog
    1
    Par défaut
    # est le delimiteur de la regexp
    est un group nommé et permet de recupérer dans un array litteral les matches ...
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  9. #9
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    51
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 51
    Par défaut
    Bonjour, encore merci pour vos réponses.
    Cependant j'aimerai aller un peu loin dans mon apprentissage de regex.

    Dans un premier temps, je cherchais à identifier toute les balise <href>.

    récapitulatif:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $chaine='<a href="abcdef">bbbbb</a>'
    $reg= '#<a[^"]*"(?P<href>[^"]*)"[^>]*>[^<]*</a>#'
    Le résultat obtenu est donc abcdef.

    Mais voila j'aimerai n'obtenir que certaines balises selon certaines chaines de caractères contenu dans les balise.

    Par exemple:


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    $chaine= '<a href="abzzcdef">bbbbb</a>
                 <a href="abcdef">bbbbb</a>
                 <a href="abczzdef">bbbbb</a>
                  <a href="abcdef">bbbbb</a>'
    Dans la chaine précédante je voudrais récupérer que les balises ne contenant "zz"

    Je fais donc (d'après plusieurs lectures de tutos, la regex suivante et d'après la grande aide de SpaceFrog:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    #<a[^"]*"(?P<href>[^"](zz))"[^>]*>[^<]*</a>#'
    Mais le résultat ne me retourne rien.
    J'ai aussi essayé:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    #<a[^"]*"(?P<href>[^"]*(zz)*)"[^>]*>[^<]*</a>#'
    Mais c 'est encore pire....
    quelqu'un pourrait-il me dire ce qu'il ne va pas?

  10. #10
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 661
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 76
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 661
    Billets dans le blog
    1
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $reg='#<a[^"]*"(?P<href>zz)"[^>]*>[^<]*</a>#';
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  11. #11
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    51
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 51
    Par défaut
    Encore merci pour ta réponse,
    Cependant j'ai beau essayer, il me revoit rien, il trouve pas "zz".
    Pourtant ça me parait logique...

  12. #12
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 661
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 76
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 661
    Billets dans le blog
    1
    Par défaut
    ha desolé j'avais mal lu... tu veux dire qui contient zz ...
    j'étais parti sur un match exact de zz


    $reg='#<a[^"]*"(?P<href>[^"]*zz[^"]*)"[^>]*>[^<]*</a>#';
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

Discussions similaires

  1. supprimer toutes les balises d'un code html (regex?)
    Par le y@m's dans le forum Langage
    Réponses: 5
    Dernier message: 21/01/2014, 10h08
  2. [RegEx] Enlever toutes les balise html
    Par cerede2000 dans le forum Langage
    Réponses: 1
    Dernier message: 26/05/2007, 10h20
  3. Réponses: 5
    Dernier message: 16/12/2006, 22h29
  4. appliquer une fonction à toutes les balises <a>
    Par trotters213 dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 30/10/2006, 16h49
  5. [RegEx] Supprimer toutes les balises script et ce qu'elles contiennent
    Par Christophe Charron dans le forum Langage
    Réponses: 3
    Dernier message: 04/05/2006, 14h59

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