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 :

Récupérer dans mon Code PHP et via DOMDocument le DEBUT et la FIN du CONTENU de la balise "small"


Sujet :

Langage PHP

  1. #1
    Membre du Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    Octobre 2013
    Messages
    452
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2013
    Messages : 452
    Points : 66
    Points
    66
    Par défaut Récupérer dans mon Code PHP et via DOMDocument le DEBUT et la FIN du CONTENU de la balise "small"
    Bonjour.


    Voici le code HTML de toutes balises small dont je souhaiterais récupérer dans une variable $start_small_tag_contain, le début de son contenu qui est (<a et aussi dans une variable $end_small_tag_contain, la fin de son contenu qui est </a>):

    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <small>(<a href="https://www.wikidata.org/wiki/Q22302383" class="extiw">
    <span class="indicateur-langue" title="Voir l'élément Wikidata correspondant">d</span></a>)</small>
     
    <small>(<a href="https://en.wikipedia.org/wiki/Donna_Zuckerberg" class="extiw">
    <span class="indicateur-langue" title="Article sur Wikipédia en anglais">en</span></a>)</small>

    Et voici comment j'obtiens toutes les balises small de la page https://fr.wikipedia.org/wiki/Mark_Zuckerberg avec DOMDocument :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    libxml_use_internal_errors(true);
            $parser = new DOMDocument();
            $parser->loadHTMLFile("https://fr.wikipedia.org/wiki/Mark_Zuckerberg");
            $get_small_tags = $parser->getElementsByTagName("small");
            foreach ($get_small_tags as $get_small_tag) {
                   ...
            }
    Comment récupérer dans la boucle foreach, dans une variable $start_small_tag_contain, le début du contenu de la balise small (<a ET dans une autre variable $end_small_tag_contain, la fin du contenu de la même variable small </a>) ???

    Merci.

  2. #2
    Expert éminent Avatar de CosmoKnacki
    Homme Profil pro
    Justicier interdimensionnel
    Inscrit en
    Mars 2009
    Messages
    2 888
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : Justicier interdimensionnel

    Informations forums :
    Inscription : Mars 2009
    Messages : 2 888
    Points : 6 632
    Points
    6 632
    Par défaut
    Dans quel but?

  3. #3
    Membre du Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    Octobre 2013
    Messages
    452
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2013
    Messages : 452
    Points : 66
    Points
    66
    Par défaut
    L'idée pour moi est de supprimer toutes les Balises <span> contenant la classe CSS indicateur-langue. Et mon code ci-après m'aide bien à le faire sachant que $wikipediaInfoboxTable est le contenu dans laquelle j'avais déjà enregistré ma partie HTML que j'ai récupéré:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    foreach ($get_span_tags as $get_span_tag) {
         if (stripos($get_span_tag->getAttribute('class'), "indicateur-langue") !== false) {
    	   $get_infoxbox_span = $parser->saveHTML($get_span_tag);
    		$wikipediaInfoboxTable = str_ireplace($get_infoxbox_span, "", $wikipediaInfoboxTable);
         }
    }
    Mon code ci-dessus fonctionne (donc, j'arrive à supprimer les d, en).

    MAIS le problème est qu'il ne supprime que les mots entre parenthèses : d, en. ET ne supprime pas du tout les parenthèses elles-mêmes : ().

    Alors que ces balises <span> que je cherche à supprimer sont souvent des liens (balise: <a>...<a> ) qui sont entre parenthèses. et le tout dans une autre balise small comme vous pouvez le constater comme suit:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <small>(<a href="https://www.wikidata.org/wiki/Q22302383" class="extiw">
    <span class="indicateur-langue" title="Voir l'élément Wikidata correspondant">d</span></a>)</small>
     
    <small>(<a href="https://en.wikipedia.org/wiki/Donna_Zuckerberg" class="extiw">
    <span class="indicateur-langue" title="Article sur Wikipédia en anglais">en</span></a>)</small>
    Donc, l'idée est de retrouver le début et la fin de l'intérieur de la balise small et de les supprimer comme je réussirais à supprimer et les d et les en qui sont au départ dans des parenthèses avec leur propre parenthèse puisque les parenthèses ne se suppriment pour le moment.

Discussions similaires

  1. Réponses: 5
    Dernier message: 12/06/2022, 20h12
  2. Erreur dans mon code php que j'arrive à voir
    Par babouba dans le forum Langage
    Réponses: 2
    Dernier message: 19/03/2007, 16h48
  3. Réponses: 6
    Dernier message: 19/07/2006, 13h48
  4. Erreur dans mon code PHP
    Par jack_1981 dans le forum Langage
    Réponses: 6
    Dernier message: 12/05/2006, 10h01
  5. Réponses: 10
    Dernier message: 06/10/2005, 22h25

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