Blog de Keran » Développement Web, Featured » Version améliorée de print_r: affichage et valeur retournée
Version améliorée de print_r: affichage et valeur retournée
Quel magnifique outil que ce print_r, function indispensable en PHP pour débuguer. Chaînes ou tableaux, la fonction se dépatouille pour sortir un contenu lisible. D’autant plus pratique avec des tableaux à plusieurs dimensions (2,3,4…) ou des tableaux associatifs peu piqués des hannetons.
Pratique mais quand même deux gros défauts:
- la fonction ne retourne rien: affichage direct
- l’affichage se fait en mode texte: pour débuguer une page HTML, une petit CTRL U sous firefox ou afficher la source sous ie.
Pour gagner du temps en production voici quelques astuces pour améliorer un poil le fameur print_r.
Affichage directement en HTML (évitant de passer par la source):
function PrePrint_r($tab)
{
print '<span style="white-space:pre;">';
print_r($tab);
print '</span>';
}
Avantage: pas besoin de passer par la source
Défaut : affichage direct sur le navigateur
Affichage directement en HTML avec gestion de sortie
function HTMLprint_r($val)
{
ob_start();
print_r($val);
$str = ob_get_contents();
ob_end_clean();
return str_replace(
array(" ","\n","\r"),
array(" ","<br />","<br />"),$str);
}
Nota: il s’agit bien sûr de et non &nbsp;.
Pas besoin de faire une function récursive; il suffit de gérer le tampon de sortie. On stocke la valeur renvoyée, on la maltraite au plaisir et bravement la fonction renvoie une chaîne.
Elle peut être appelée directement echo HTMLprint_r($monTableau) ou être stockée $maChaineDeDebug = HTMLprint_r($monTableau)
Bon après c’est ouvert, la fonction peut être configurée dans un fichier global et s’appeler seulement p() pour facilier le temps de debug.
Filed under: Développement Web, Featured · Tags: debug, optimisation, php, print_r, productivité










