Manipuler les données d'un tableau en php

Fermé
sofiachan - 16 mai 2012 à 19:41
 sofiachan - 17 mai 2012 à 14:40
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

mpmp93 Messages postés 6648 Date d'inscription mercredi 13 avril 2011 Statut Membre Dernière intervention 28 septembre 2015 1 339
17 mai 2012 à 12:46
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
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
mpmp93 Messages postés 6648 Date d'inscription mercredi 13 avril 2011 Statut Membre Dernière intervention 28 septembre 2015 1 339
17 mai 2012 à 13:42
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
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
mpmp93 Messages postés 6648 Date d'inscription mercredi 13 avril 2011 Statut Membre Dernière intervention 28 septembre 2015 1 339
17 mai 2012 à 14:25
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
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