Advertisement
kernel

Json Pretty Print

Jul 25th, 2011
356
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 0.97 KB | None | 0 0
  1. function json_encode_pretty($value, $options = 0, $indentationCharacter = ' ')
  2. {
  3.     $string         = json_encode($value, $options);
  4.     $out            = '';
  5.     $indent         = 0;
  6.     $istext         = false;
  7.     for($i = 0; $i < strlen($string); $i++)
  8.     {
  9.         $character      = substr($string, $i, 1);
  10.         $breakBefore    = $breakAfter   = false;
  11.         $charBefore     = $charAfter    = '';
  12.  
  13.         if($character === '"' && ($i > 0 && substr($string, $i - 1, 1) !== '\\'))
  14.             $istext = !$istext; // toggle
  15.         if(!$istext)
  16.             switch($character)
  17.             {
  18.                 case '[':
  19.                 case '{':
  20.                     $indent++;
  21.                 case ',':
  22.                     $breakAfter = true;
  23.                 break;
  24.                 case ']':
  25.                 case '}':
  26.                     $indent--;
  27.                     $breakBefore = true;
  28.                 break;
  29.                 case ':':
  30.                     $charBefore = $charAfter = ' ';
  31.                 break;
  32.             }
  33.         $out    .= ($breakBefore ? PHP_EOL.str_repeat($indentationCharacter, $indent) : '')
  34.                 .  $charBefore.$character.$charAfter
  35.                 .  ($breakAfter ? PHP_EOL.str_repeat($indentationCharacter, $indent) : '')
  36.                 ;
  37.     }
  38.     return $out;
  39. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement