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 :

[Tableaux] Récupérer x occurences dans une longue chaine compliquée


Sujet :

Langage PHP

  1. #1
    Membre à l'essai
    Inscrit en
    Décembre 2006
    Messages
    17
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 17
    Points : 13
    Points
    13
    Par défaut [Tableaux] Récupérer x occurences dans une longue chaine compliquée
    je n'arrive pas à faire ceci :

    j'ai une variable contenant une chaine de caractère et je veux en extraire des infos. EN faite il s'agit d'un tableau dans lequel j'aimerais récupérer le contenu de la première cellule de chaque ligne

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    $texte = '
    <tr><td>Exemple</td></tr>
    <tr><td>Exemple1</td></tr>
    <tr><td>Exemple2</td></tr>
    <tr><td>Exemple3</td></tr>';
    Pour ça j'ai utilisé la fonctione ereg :
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    ereg("<td>([^<>/._][A-Za-z0-9:-]*)</td>", $texte, $regs);

    Donc ça me récupert la première valeur => Exemple
    Moi je cherche une fonction qui me récupert toutes ces valeurs en une fois et qu'elle le mette par exemple dans un tableau :
    array('Exemple', 'Exemple1', 'Exemple2', 'Exemple3')

    Evidemment, le chaine est bien compliquée que celle de mon exemple, voici un bout :

    Code HTML : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    <tr class="tr2">
    <td><p><a href="http://www.jeuxvideo.com/articles/0000/00007183-lea-passion-veterinaire-test.htm">Lea Passion Veterinaire</a></p></td>
    <td>Gestion</td>
    <td><a target="_blank" href="http://www1.jeuxvideo.com/cgi-bin/boutique/redirect_test.cgi?ID=0000000400017323&amp;Url=http://www.alapage.com/mx/?&amp;type=52&amp;donnee_appel=JVCOM&amp;tp=F&amp;REF_NOVA=633389"><img src="http://image.jeuxvideo.com/npics/caddie.gif" alt="Achat" height="16" width="15" /></a></td>
    <td>14/12/2006</td>
    <td>Super.panda</td>
    <td>7</td>
    </tr>
    <tr class="tr1">
    <td><p><a href="http://www.jeuxvideo.com/articles/0000/00007181-race-the-wtcc-game-test.htm">RACE : The WTCC Game</a></p></td>
     
    <tr class="tr2">
    <td><p><a href="http://www.jeuxvideo.com/articles/0000/00007175-rayman-contre-les-lapins-cretins-test.htm">Rayman Contre Les Lapins Cretins</a></p></td>
    <td>Party Game</td>
    <td><a target="_blank" href="http://www1.jeuxvideo.com/cgi-bin/boutique/redirect_test.cgi?ID=0000000400016627&amp;Url=http://www.alapage.com/mx/?&amp;type=52&amp;donnee_appel=JVCOM&amp;tp=F&amp;REF_NOVA=634111"><img src="http://image.jeuxvideo.com/npics/caddie.gif" alt="Achat" height="16" width="15" /></a></td>
    <td>12/12/2006</td>
     
    <td>Romendil</td>
    <td>12</td>
    </tr>

    Je voudrais récupérer les chaine : "Lea Passion Veterinaire" et "Rayman Contre Les Lapins Cretins" dans cet extrait.

    Mon problème n'est pas le regex, ça je peux m'en sortir, mais le fonction à utiliser ou l'astuce pour y arriver.


    Quelqu'un peut-il m'aider à faire ce que je veux Parce que là je bloque !!

    Merci d'avance :d

  2. #2
    Inscrit

    Profil pro
    H4X0|2 @ YourLabs Business Service
    Inscrit en
    Octobre 2006
    Messages
    657
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : H4X0|2 @ YourLabs Business Service
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2006
    Messages : 657
    Points : 909
    Points
    909
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    <?php
    $texte = '
    <tr><td>Exemple</td></tr>
    <tr><td>Exemple1</td></tr>
    <tr><td>Exemple2</td></tr>
    <tr><td>Exemple3</td></tr>';
     
    preg_match_all("`<td>(.*)</td>`m", $texte, $out);
    print_r($out);
    ?>
    code de sortie :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    Array
    (
        [0] => Array
            (
                [0] => <td>Exemple</td>
                [1] => <td>Exemple1</td>
                [2] => <td>Exemple2</td>
                [3] => <td>Exemple3</td>
            )
     
        [1] => Array
            (
                [0] => Exemple
                [1] => Exemple1
                [2] => Exemple2
                [3] => Exemple3
            )
     
    )
    Ne pas oublier le mode multi-ligne (option m)
    YourLabs Business Service: Conseil en Strategie Numerique / Club de 1337 Haxors depuis 2012 / Marque de Logiciels Libres / Blog / GitHub /
    Citation Envoyé par C.A.R. Hoare, The 1980 ACM Turing Award Lecture
    There are two ways of constructing a software design: One way is to make it so simple that there are obviously no deficiencies and the other way is to make it so complicated that there are no obvious deficiencies.”
    More great quotes - RIP Uriel

Discussions similaires

  1. Réponses: 5
    Dernier message: 01/06/2007, 14h20
  2. Réponses: 2
    Dernier message: 14/09/2006, 22h00
  3. Réponses: 4
    Dernier message: 09/09/2006, 10h18
  4. récupérer un objet dans une liste chainée
    Par marsuwhite dans le forum Langage
    Réponses: 4
    Dernier message: 05/06/2006, 14h05
  5. Position d'une occurence dans une chaine
    Par Maglight dans le forum Langage
    Réponses: 3
    Dernier message: 04/07/2005, 10h08

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