La communauté ALL HTML c'est 60188 membres à ce jour dont 0 inscrits aujourd'hui et 19 depuis une semaine.

Un print_r mieux formatté

Photo de pchlj Article publié le jeudi 07 juin 2007 par pchlj.
Cet article est classé dans les catégories « Internet et Intranet, PHP »

Voici une fonction semi récursive permettant de mieux visualiser le contenu d'un array (simple ou multiniveau).

Bonjour à tous...

Comme beaucoup de développeurs, nous utilisons la fonction print_r qui permet de voir le contenu d'un array à l'écran.
Ceci permet de débugger ou bien encore de comprendre où se situe exactement les données dont nous avons besoin dans notre code.

Seulement voilà, print_r est pratique mais pas facile à lire dès que l'on est dans de grands array ou dans des multiniveaux.

C'est pourquoi depuis quelques années nous avons créé une fonction qui améliore tout ça. Elle est facile à inclure n'importe où dans un site et très très simple d'utilisation.
Voici la fonction :


function print_r_V2($array) { print "<table border='1'>"; foreach($array as $key=>$val) { print "<tr><td><font size=2>".$key."</td><td><font size=2>"; if (is_array($array[$key])) { print_r_V2($array[$key]); print "</td></tr>"; } else print $val."</td></tr>"; } print "</table>"; }

Pour mieux comprendre, voici à quelque chose pret à quoi cela ressemble :


avec print_r

array([0]=>"val1",[1]=>array([0]=>"val2"],[1]=>"val3"))

avec print_r_V2

0 val1
1 0 val2
1 val3

Bien sûr tout ça dans une table qui a un border, ce qui rend les choses plus compréhensible ;-).


VOS COMMENTAIRES ...

Commenter cette publication

Photo de Country Commentaire publié le mercredi 14 février 2007 à 19 h 16 par Country
Plus simple et plus lisible :

echo '<pre>'.print_r($array,true).'</pre>';
Photo de telnes Commentaire publié le jeudi 15 février 2007 à 09 h 48 par telnes
bonjour

je suis pas convaincu par cette fonction.

déjà pourquoi ne pas faire une fonction/class debug ! a qui on passe en paramètre n'importe quel type de var (pas uniquement un array ) et avec un nom plutot cour car le debug c'est pressé :) genre une fonction d().


++
Photo de telnes Commentaire publié le jeudi 15 février 2007 à 09 h 52 par telnes
Photo de pchlj Commentaire publié le jeudi 15 février 2007 à 17 h 54 par pchlj
voici un exemple de ce que retounr réellement la fonction :

<table border='1'><tr><td><font size=2>0</td><td><font size=2>val1</td></tr><tr><td><font size=2>1</td><td><font size=2><table border='1'><tr><td><font size=2>0</td><td><font size=2>val2</td></tr><tr><td><font size=2>1</td><td><font size=2>val3</td></tr></table></td></tr></table>

pour ce qui est du nom chacun met ce qu'il veut

le but est simplement d'avoir une forme plus lisible du print_r, après à chacun ses gouts, les exemple donnés sont otut aussi intéressant, après chacun est libre de son choix ;)
Photo de Mc² Commentaire publié le samedi 07 avril 2007 à 23 h 25 par Mc²
Le commentaire de Country n'est pas très correct....

Il n'est pas recommandé d'utiliser print_r() dans un echo(), vu que, tout comme echo, print_r procède à une sortie sur stdout...

Il vaut donc mieux faire:
echo("<pre>");
print_r($mon_tab);
echo("</pre>");

C'est mon débug (succint) à moi ;)
Photo de RaoulChatigre Commentaire publié le lundi 23 avril 2007 à 14 h 07 par RaoulChatigre
*** vite une cabine téléphonique ***

echo "<pre>".print_r($MonTableau, false)."</pre>"

is it a user ? is it a dev ? no ! it's PHPman !!

source : http://fr.php.net/manual/fr/function.print-r.php

Commenter cette publication

Vous devez obligatoirement vous identifier en tant que membre pour participer à cette discussion.

Forums de discussions associés

Discutez et échangez sur ce thème dans notre forum PHP - SQL.

Liens sponsorisés

ACCÉS COMMUNAUTÉ

Rejoignez ALL HTML

Publiez vos articles, actualités, communiqués ... Donnez votre avis, partagez votre réseau, rencontrez d'autres membres et participez à la vie de la communauté.