JSON Viewer: PHP PDF Print E-mail
  
Thursday, 11 September 2008 15:37

Requires: PHP version 5

Description: This was a quickly hacked together piece of code I put together out of a necessity.

 Example: dump_json.php

  1. <?PHP
  2. ////////////////////////////////////////////////////////
  3. // Function:         dump
  4. // Inspired from:     PHP.net Contributions
  5. // Description: Helps with php debugging
  6.  
  7. function dump(&$var, $info = FALSE, $title = FALSE)
  8. {
  9.     $scope = false;
  10.     $prefix = 'unique';
  11.     $suffix = 'value';
  12.  
  13.     if($scope) $vals = $scope;
  14.     else $vals = $GLOBALS;
  15.  
  16.     $old = $var;
  17.     $var = $new = $prefix.rand().$suffix; $vname = FALSE;
  18.     foreach($vals as $key => $val) if($val === $new) $vname = $key;
  19.     $var = $old;
  20.  
  21.     echo "<pre style='margin: 0px 0px 10px 0px; display: block; background: white; color: black; font-family: Verdana; border: 1px solid #cccccc; padding: 5px; font-size: 10px; line-height: 13px;'>";
  22.     if ($title != FALSE)
  23.     {
  24.         echo "<div style='background:#a2a2a2; align:center;'>".$title."</div>";
  25.     }
  26.     if($info != FALSE) echo "<b style='color: red;'>$info:</b><br>";
  27.     do_dump($var, '$'.$vname);
  28.     echo "</pre>";
  29. }
  30.  
  31. ////////////////////////////////////////////////////////
  32. // Function:         do_dump
  33. // Inspired from:     PHP.net Contributions
  34. // Description: Better GI than print_r or var_dump
  35.  
  36. function do_dump(&$var, $var_name = NULL, $indent = NULL, $reference = NULL)
  37. {
  38.     $do_dump_indent = "<span style='color:#eeeeee;'>|</span>    ";
  39.     $reference = $reference.$var_name;
  40.     $keyvar = 'the_do_dump_recursion_protection_scheme'; $keyname = 'referenced_object_name';
  41.  
  42.     if (is_array($var) && isset($var[$keyvar]))
  43.     {
  44.         $real_var = &$var[$keyvar];
  45.         $real_name = &$var[$keyname];
  46.         $type = ucfirst(gettype($real_var));
  47.         echo "$indent$var_name <span style='color:#a2a2a2'>$type</span> = <span style='color:#e87800;'>&$real_name</span><br>";
  48.     }
  49.     else
  50.     {
  51.         $var = array($keyvar => $var, $keyname => $reference);
  52.         $avar = &$var[$keyvar];
  53.   
  54.         $type = ucfirst(gettype($avar));
  55.         if($type == "String") $type_color = "<span style='color:green'>";
  56.         elseif($type == "Integer") $type_color = "<span style='color:red'>";
  57.         elseif($type == "Double"){ $type_color = "<span style='color:#0099c5'>"; $type = "Float"; }
  58.         elseif($type == "Boolean") $type_color = "<span style='color:#92008d'>";
  59.         elseif($type == "NULL") $type_color = "<span style='color:black'>";
  60.   
  61.         if(is_array($avar))
  62.         {
  63.             $count = count($avar);
  64.             $GLOBALS['block_num'] = $GLOBALS['block_num'] + 1;
  65.             $array_num = $GLOBALS['block_num'];
  66.             echo "$indent" . ($var_name ? "<a name=\"block_pos".$array_num."\" href=\"#block_pos".$array_num."\" OnClick=\"ToggleBlock(".$array_num.")\">$var_name</a> => ":"") . "<span style='color:#a2a2a2'>$type ($count)</span><br>$indent(<span id=\"block".$array_num."\"><br>";
  67.             $keys = array_keys($avar);
  68.             foreach($keys as $name)
  69.             {
  70.                 $value = &$avar[$name];
  71.                 do_dump($value, "['$name']", $indent.$do_dump_indent, $reference);
  72.             }
  73.             echo "$indent</span>)<br>";
  74.         }
  75.         elseif(is_object($avar))
  76.         {
  77.             $GLOBALS['block_num'] = $GLOBALS['block_num'] + 1;
  78.             $obj_num = $GLOBALS['block_num'];
  79.             echo "$indent<a name=\"block_pos".$obj_num."\" href=\"#block_pos".$obj_num."\"  OnClick=\"ToggleBlock(".$obj_num.")\">$var_name</a> <span style='color:#a2a2a2'>$type</span><br>$indent(<span id=\"block".$obj_num."\"><br>";
  80.             foreach($avar as $name=>$value) do_dump($value, "$name", $indent.$do_dump_indent, $reference);
  81.             echo "$indent</span>)<br>";
  82.         }
  83.         elseif(is_int($avar)) echo "$indent$var_name = <span style='color:#a2a2a2'>$type(".strlen($avar).")</span> $type_color$avar</span><br>";
  84.         elseif(is_string($avar)) echo "$indent$var_name = <span style='color:#a2a2a2'>$type(".strlen($avar).")</span> $type_color\"$avar\"</span><br>";
  85.         elseif(is_float($avar)) echo "$indent$var_name = <span style='color:#a2a2a2'>$type(".strlen($avar).")</span> $type_color$avar</span><br>";
  86.         elseif(is_bool($avar)) echo "$indent$var_name = <span style='color:#a2a2a2'>$type(".strlen($avar).")</span> $type_color".($avar == 1 ? "TRUE":"FALSE")."</span><br>";
  87.         elseif(is_null($avar)) echo "$indent$var_name = <span style='color:#a2a2a2'>$type(".strlen($avar).")</span> {$type_color}NULL</span><br>";
  88.         else echo "$indent$var_name = <span style='color:#a2a2a2'>$type(".strlen($avar)."</span>)</span> $avar<br>";
  89.  
  90.         $var = $var[$keyvar];
  91.     }
  92. }
  93.  
  94. $json_str = stripslashes($_POST['taJSONString']);
  95. ?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
  96. <html xmlns="http://www.w3.org/1999/xhtml">
  97.   <head>
  98.     <title>JSON Viewer</title>
  99. <script language="JavaScript">
  100.   function ToggleBlock(id)
  101.     {
  102.     if (document.getElementById("block"+id).style.display == "none")
  103.       {
  104.       document.getElementById("block"+id).style.display = "";
  105.       }
  106.     else
  107.       {
  108.       document.getElementById("block"+id).style.display = "none";
  109.       }
  110.     }
  111. </script>
  112.   </head>
  113.   <body>
  114.     <p><form method="post" action="<?PHP echo $_SERVER['PHP_SELF'];?>">
  115.     JSON to decode<br />
  116.       <textarea name="taJSONString" cols="80" rows="25"><?PHP echo $json_str; ?></textarea><br />
  117.       <input type="submit" name="btnSubmit" value="Decode" />
  118.     </form></p>
  119.     <p>
  120. <?PHP
  121. if (isset($_POST['btnSubmit']) == true)
  122.   {
  123.   $json = json_decode($json_str);
  124.   dump($json);
  125.   }
  126.  
  127. ?>
  128.     </p>
  129.   </body>
  130. </html>

Comments
Search
Only registered users can write comments!

3.26 Copyright (C) 2008 Compojoom.com / Copyright (C) 2007 Alain Georgette / Copyright (C) 2006 Frantisek Hliva. All rights reserved."

Last Updated ( Saturday, 11 October 2008 18:20 )
 
Copyright © 2010 lymeteam.org. All Rights Reserved.
Joomla! is Free Software released under the GNU/GPL License.