Manipuler les données d'un tableau en php

sofiachan -  
 sofiachan -
Bonjour à tous,
je travaille actuellement sur une application de télégestion d'émetteurs que j'ai décidé de développer en php , et j'aborde l'étape du contrôle; avant de me lancer, j'ai commencé à m'entrainer avec de petits bout de codes.
Alors ce que je voudrais faire, c'est extraire un tableau à partir d'une page web et de le placer dans un autre tableau, pour cela, je me suis aidée des regex.
donc j'ai un tableau comme ceci dans page.php:
<table>
<tr>
<td>jour 1 </td> <td> ok</td></tr>
<tr>
<td>jour 2</td><td> erreur</td></tr>
</table>

j'ai extrait les élément du tableau dans teste.php: ça donne ceci:

Array ( [0] => Array ( [0] => jour 1 [1] => ok [2] => jour 2 [3] => erreur ) [1] => Array ( [0] => jour 1 [1] => ok [2] => jour 2 [3] => erreur ) )

mais je voudrais ensuite placer cet array dans un tableau et le visualiser ( c'est la où je bloque) ou l'exploiter par excel (je sais le faire à partir d'un array), j'ai passé des heures à chercher et essayer plusieurs méthodes mais en vain, finalement je me retourne vers vous.
je vous remercie d'avance
cordialement.

1 réponse

  1. mpmp93 Messages postés 2931 Date d'inscription   Statut Membre Dernière intervention   1 343
     
    en php et HTML:

    <?php
    $mesDonnees = array ( 
       [0] => array(
           [0] => "jour 1",
           [1] => "ok",
           [2] => "jour 2",
           [3] => "erreur" ),
       [1] => array(
           [0] => "jour 1",
           [1] => "ok",
           [2] => "jour 2",
           [3] => "erreur" ) );
    ?>
    <table>
      <tbody>
      <?php foreach($mesDonnees AS $key0 => $ligneDonnees): ?>
        <tr>
          <?php foreach($ligneDonnees AS $key1 => $donnee): ?>
           <td><?php echo $donnee; ?></td>
          <?php endforeach; ?>
        </tr>
      <?php endforeach: ?>
      </tbody>
    </table>


    SI vous rajoutez des données à $mesDonnees, le script va automatiquement rajouter des lignes et/ou colonnes...

    A+
    0
    1. sofiachan
       
      merci beaucoup pour ton aide, mais ce n'est pas ce que je cherchais en fait.
      désolée si je n'étais pas assez claire , alors je m'explique:
      par exemple, la donnée 'erreur' dans page.php se peut qu'elle change , ce qui veut dire qu'on ne connait pas la valeur , ça peut être 'ok' ou 'erreur', ce que je voudrais c'est que le résultat du regex c'est à dire un tableau, soit placé lui même dans un array quelque soit ses valeurs( j'espère que vous m'avez un peu compris XD)
      0
    2. mpmp93 Messages postés 2931 Date d'inscription   Statut Membre Dernière intervention   1 343
       
      désolé, je comprends pas ce que vous voulez...; regex où? pourquoi faire? que mettez-vous dans le regex pour avoir un "tableau"? pourquoi traiter un tr..td.../td.../Tr avec regex? pourquoi extraire un tableau pour en faire un tableau? de où les données et pour aller où?
      0
    3. sofiachan
       
      alors dans teste.php , j'ai mis ça:
      $xml = file_get_contents('http://localhost/regex/page.php');
      preg_match_all('#<td>(.*)</td>#U', $xml, $aMatches);
      print_r($aMatches);


      ben le regex est pour moi la meilleur solution si je veux contrôler ma page, surveiller un paramètre qui peut changer etc

      cela m'extrait les éléments du tableau,le résultat $aMatches est un tableau non?!! alors je voudrais bien arriver à manipuler ces éléments , ainsi je pourrais l'afficher dans une page excel par exemple
      je m'excuse si je t'ai embrouillé avec tout ça hehe !!
      0
    4. mpmp93 Messages postés 2931 Date d'inscription   Statut Membre Dernière intervention   1 343
       
      alors le regex n'est pas la meilleure solution.

      Il faudrait isoler le code entre table et /table et passer par simpleXml. Si votre page.php ne contient que TABLE.../TABLE, alors c'est bien plus simple:

      $maTable = "<?xml version='1.0' standalone='yes'?>\n".file_get_contents('http://localhost/regex/page.php');
      $xml = simplexml_load_string($maTable);

      A partir de là, voir la doc de la classe simpleXml:
      https://www.php.net/manual/fr/simplexml.examples-basic.php

      On considère simplement que TABLE..../TABLE est une structure XML...

      Pour voir la manière dont les données sont dans $xml, faire simplement:

      print_r($xml);

      vous y verrez les noeuds fils et les sous tableaux. Ainsi, sauf erreur, le slignes de données doivent être dans un array() auquel on accède comme ceci:

      $lignes = $xml->tr;

      vous faites un foreach sur $lignes....




      A+
      0
    5. sofiachan
       
      wow!! je dois m'y mettre alors!!
      c'est un peu dommage, j'aurais voulu continuer avec les regex , mais tant pis
      je te remercie beaucoup pour ton aide ,tu as eu la bonté de me consacrer un peu de ton temps n_n
      0