gluon-web-remote

Web remote Administration for big size of gluon routers
git clone git://archive.git.mtrnord.blog/MTRNord/gluon-web-remote.git
Log | Files | Refs | README

modifier.debug_print_var.php (3963B)


      1 <?php
      2 /**
      3  * Smarty plugin
      4  *
      5  * @package    Smarty
      6  * @subpackage Debug
      7  */
      8 
      9 /**
     10  * Smarty debug_print_var modifier plugin
     11  * Type:     modifier<br>
     12  * Name:     debug_print_var<br>
     13  * Purpose:  formats variable contents for display in the console
     14  *
     15  * @author Monte Ohrt <monte at ohrt dot com>
     16  *
     17  * @param array|object $var     variable to be formatted
     18  * @param int          $max     maximum recursion depth if $var is an array or object
     19  * @param int          $length  maximum string length if $var is a string
     20  * @param int          $depth   actual recursion depth
     21  * @param array        $objects processed objects in actual depth to prevent recursive object processing
     22  *
     23  * @return string
     24  */
     25 function smarty_modifier_debug_print_var($var, $max = 10, $length = 40, $depth = 0, $objects = array())
     26 {
     27     $_replace = array("\n" => '<i>\n</i>',
     28                       "\r" => '<i>\r</i>',
     29                       "\t" => '<i>\t</i>'
     30     );
     31     switch (gettype($var)) {
     32         case 'array' :
     33             $results = '<b>Array (' . count($var) . ')</b>';
     34             if ($depth == $max) {
     35                 break;
     36             }
     37             foreach ($var as $curr_key => $curr_val) {
     38                 $results .= '<br>' . str_repeat('&nbsp;', $depth * 2)
     39                     . '<b>' . strtr($curr_key, $_replace) . '</b> =&gt; '
     40                     . smarty_modifier_debug_print_var($curr_val, $max, $length, ++ $depth, $objects);
     41                 $depth --;
     42             }
     43             break;
     44 
     45         case 'object' :
     46             $object_vars = get_object_vars($var);
     47             $results = '<b>' . get_class($var) . ' Object (' . count($object_vars) . ')</b>';
     48             if (in_array($var, $objects)) {
     49                 $results .= ' called recursive';
     50                 break;
     51             }
     52             if ($depth == $max) {
     53                 break;
     54             }
     55             $objects[] = $var;
     56             foreach ($object_vars as $curr_key => $curr_val) {
     57                 $results .= '<br>' . str_repeat('&nbsp;', $depth * 2)
     58                     . '<b> -&gt;' . strtr($curr_key, $_replace) . '</b> = '
     59                     . smarty_modifier_debug_print_var($curr_val, $max, $length, ++ $depth, $objects);
     60                 $depth --;
     61             }
     62             break;
     63 
     64         case 'boolean' :
     65         case 'NULL' :
     66         case 'resource' :
     67             if (true === $var) {
     68                 $results = 'true';
     69             } elseif (false === $var) {
     70                 $results = 'false';
     71             } elseif (null === $var) {
     72                 $results = 'null';
     73             } else {
     74                 $results = htmlspecialchars((string) $var);
     75             }
     76             $results = '<i>' . $results . '</i>';
     77             break;
     78 
     79         case 'integer' :
     80         case 'float' :
     81             $results = htmlspecialchars((string) $var);
     82             break;
     83 
     84         case 'string' :
     85             $results = strtr($var, $_replace);
     86             if (Smarty::$_MBSTRING) {
     87                 if (mb_strlen($var, Smarty::$_CHARSET) > $length) {
     88                     $results = mb_substr($var, 0, $length - 3, Smarty::$_CHARSET) . '...';
     89                 }
     90             } else {
     91                 if (isset($var[$length])) {
     92                     $results = substr($var, 0, $length - 3) . '...';
     93                 }
     94             }
     95 
     96             $results = htmlspecialchars('"' . $results . '"');
     97             break;
     98 
     99         case 'unknown type' :
    100         default :
    101             $results = strtr((string) $var, $_replace);
    102             if (Smarty::$_MBSTRING) {
    103                 if (mb_strlen($results, Smarty::$_CHARSET) > $length) {
    104                     $results = mb_substr($results, 0, $length - 3, Smarty::$_CHARSET) . '...';
    105                 }
    106             } else {
    107                 if (strlen($results) > $length) {
    108                     $results = substr($results, 0, $length - 3) . '...';
    109                 }
    110             }
    111 
    112             $results = htmlspecialchars($results);
    113     }
    114 
    115     return $results;
    116 }