Extraire du texte entre 2 balises avec php

Résolu
Bonjour, je cherche la solution qui me permettrai d'extraire du texte entre deux balises en php, et plus précisement les textes qui se situent dans ces 3 lignes :

<a href="/siteinfo/page1.html">Coco </a>
<a href="/siteinfo/page2.html">Riri </a>
<a href="/siteinfo/page3.html">Dada </a>

Donc comment faire pour récupérer les textes Coco, Riri, et Dada en php ?

Ps : je ne veux pas de javascript, car je veux le faire en php.

Merci d'avance, cordialement

6 réponses

  1. <?php
    $source = '<a href="/siteinfo/page1.html">Coco</a>
    <a href="/siteinfo/page2.html">Riri</a>
    <a href="/siteinfo/page3.html">Dada</a>';
    
    preg_match_all('#<a href="(.+)">(.+)</a>#i', $source, $liens);
    
    $nb = 0;
    foreach($liens[0] as $complet) {
        $url = $liens[1][$nb];
        $texte = $liens[2][$nb];
    
        echo 'Lien complet : '.htmlspecialchars($complet).'<br />';
        echo 'URL : '.$url.'<br />';
        echo 'Texte : '.$texte.'<br />';
        echo '<hr />';
    
        $nb++;
    }
    ?>
    1. Bonjour f16, merci, je vais essayer ça, je vais voir si ça marche.

      +1 pour toi, euh non +100 plutot.

      A+
      1. Merci f16, grace à toi, le problème est résolu.

        Quant au hollandais volant, je te remercie pour ton astuce qui était en faite la réponse à ma futur question.

        Merci à tous les 2.
        1. Bonjour,
          Désolé de reprendre ce vieux sujet, mais il ressemble le plus à ce que je recherche...

          Le Code est ok pour moi... Mais comment récupérer du texte se trouvant entre les liens ?
          Exemple :
          <a href="/siteinfo/page1.html">Coco</a>... Récupérer tout ici...
          <a href="/siteinfo/page2.html">Riri</a>... Et ici...
          <a href="/siteinfo/page3.html">Dada</a>... Et là...
          


          Merci de voptre aide
          Cordialement

          DJ
          1. Salut !
            Faut le faire avec des regex :

            <?php 
            $nom = preg_replace('#<[.*]>([a-z]*)</[.*]>#i', '$1', $texte); 
            ?>


            Où $texte est une ligne de code HTML.

            (ce code recherchera ce qui se trouve entre des balises et le mettre dans la variable $nom.)