note 105060 deleted from function.json-encode by danbrown
| From: | danbrown@php.net | Date: | Mon, 25 Jul 2011 19:45:59 +0000 |
| Subject: | note 105060 deleted from function.json-encode by danbrown | ||
| References: | 1 | Groups: | php.notes |
| Request: | Send a blank email to php-notes+get-181864@lists.php.net to get a copy of this message | ||
Note Submitter: krnl
----
Improved pretty print that works correctly:
function json_encode_pretty($value, $indentationCharacter = ' ')
{
$string = json_encode($value);
$out = '';
$indent = 0;
for($i = 0; $i < strlen($string); $i++)
{
$breakBefore = $breakAfter = false;
$charBefore = $charAfter = '';
switch($character = substr($string, $i, 1))
{
case '[':
case '{':
$indent++;
case ',':
$breakAfter = true;
break;
case ']':
case '}':
$indent--;
$breakBefore = true;
break;
case ':':
$charBefore = $charAfter = ' ';
break;
}
$out .= ($breakBefore ? PHP_EOL.str_repeat($indentationCharacter, $indent) : '')
. $charBefore.$character.$charAfter
. ($breakAfter ? PHP_EOL.str_repeat($indentationCharacter, $indent) : '')
;
}
return $out;
}