source: spip-zone/_core_/branches/spip-3.1/plugins/dev/dev_fonctions.php @ 100571

Last change on this file since 100571 was 100571, checked in by eric@…, 3 years ago

Report de 100570.
Ajout d'une option dans bel_env pour afficher clairement les valeurs chaine vide et null

File size: 1.4 KB
Line 
1<?php
2
3if (!defined('_ECRIRE_INC_VERSION')) return;
4
5/**
6 * Une fonction récursive pour joliment afficher #ENV, #GET, #SESSION...
7 *              en squelette : [(#ENV|bel_env)], [(#GET|bel_env)], [(#SESSION|bel_env)]
8 *              ou encore [(#ARRAY{0,1, a,#SESSION, 1,#ARRAY{x,y}}|bel_env)]
9 *
10 * @param string|array $env
11 *              si une string est passée elle doit être le serialize d'un array
12 * @param bool         $afficher_vide
13 *      si vrai indique qu'il faut afficher la chaine vide et la valeur
14 *      respectivement comme `''` et `null`. Sinon on affiche rien.
15 *
16 * @return string
17 *              une chaîne html affichant une <table>
18**/
19function bel_env($env, $afficher_vide = false) {
20        if (!$afficher_vide) {
21                $env = str_replace(array('&quot;', '&#039;'), array('"', '\''), $env);
22        }
23        if (is_array($env_tab = @unserialize($env))) {
24                $env = $env_tab;
25        }
26        if (!is_array($env)) {
27                return '';
28        }
29        $style = " style='border:1px solid #ddd;'";
30        $res = "<table style='border-collapse:collapse;'>\n";
31        foreach ($env as $nom => $val) {
32                if (is_array($val) || is_array(@unserialize($val))) {
33                        $val = bel_env($val, $afficher_vide);
34                }
35                elseif (($val === null) and $afficher_vide) {
36                        $val = '<i>null</i>';
37                }
38                elseif (($val === '') and $afficher_vide) {
39                        $val = "<i>''</i>";
40                }
41                else {
42                        $val = entites_html($val);
43                }
44                $res .= "<tr>\n<td$style><strong>". entites_html($nom).
45                                "&nbsp;:&nbsp;</strong></td><td$style>" .$val. "</td>\n</tr>\n";
46        }
47        $res .= "</table>";
48        return $res;
49}
Note: See TracBrowser for help on using the repository browser.