Bonjour,
La fonction print_r() c'est pratique, mais c'est parfois illisible.
Je fais un print_r($data), sauf que $data c'est un tableau de tableau de tableau de ........ tableau.
Bref mon print_r fais plusieurs milliers de ligne et c'est impossible malgrès l'indentation de savoir exactement ou l'on se trouve dans l'arborescence de ma variable.
D'ou ma question :
Connaissez vous un moyen, une astuce ou autre trick qui permettrais de dumper des variables sous formes d'arborescence dépliante?? (un truc dépliable telle les pagex xml sans mise en forme serait pas mal)
D'avance merci
# \n
Posté par Le Gall Sébastien . Évalué à 0.
Bon après... c'est clair que j'ai fait mon bourrin là. :-/
# ma solution
Posté par Renaud Guezennec (site web personnel) . Évalué à 4.
print_r($data);
echo "</pre>";
[^] # Re: ma solution
Posté par Raphaël G. (site web personnel) . Évalué à 3.
urpmi php-xdebug
service httpd restart
Puis dans ton code utilise du :
var_dump($variable);
Ça va te générer les balises pre et la coloration ainsi que te découper partiellement les très gros tableaux.
# utiliser un éditeur de code
Posté par santos . Évalué à 2.
voilà ce que je te propose :
exemple de code
<?php
for ($i=1; $i<5; $i++)
{
$tab1[] = $i;
}
for ($j=0; $j<3; $j++)
{
$tab2[] = $tab1;
}
for ($k=0; $k<2; $k++)
{
$tab3[] = $tab2;
}
echo "";
print_r($tab3);
echo "";
?>
Ce qui en sortie, donne ça (sauf que c'est indenté) :
Array
(
[0] => Array
(
[0] => Array
(
[0] => 1
[1] => 2
[2] => 3
[3] => 4
)
[1] => Array
(
[0] => 1
[1] => 2
[2] => 3
[3] => 4
)
[2] => Array
(
[0] => 1
[1] => 2
[2] => 3
[3] => 4
)
)
[1] => Array
(
[0] => Array
(
[0] => 1
[1] => 2
[2] => 3
[3] => 4
)
[1] => Array
(
[0] => 1
[1] => 2
[2] => 3
[3] => 4
)
[2] => Array
(
[0] => 1
[1] => 2
[2] => 3
[3] => 4
)
)
)
Tu fais un copier-coller de ton résultat vers ton éditeur de code favori, et tu lances le remplacement automatique de tous les ( par { et de ) par }, tu rajoutes <?php et ?>, tu enregistes, et hop, magique, tu peux enrouler et dérouler tes blocs de code :)
# SPL
Posté par andeus . Évalué à 1.
<?php
/* tableau */
$a = new RecursiveArrayIterator(array(
'foo' => array(
'd','e','f',
'bar' => array(
'g','h'
)
),
'baz' => array('a','b','c'),
));
/* print_r() amélioré */
$it = new RecursiveTreeIterator($a, RecursiveTreeIterator::BYPASS_CURRENT);
foreach($it as $key => $value) {
echo "$key $value\n";
}
?>
Qui peut donner quelque chose comme ça, avec les "décorations" par défaut:
|-foo Array
| |-0 d
| |-1 e
| |-2 f
| \-bar Array
| |-0 g
| \-1 h
\-baz Array
|-0 a
|-1 b
\-2 c
[1] http://www.php.net/~helly/php/ext/spl/classRecursiveTreeIter(...)
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.