diff options
author | friendica <info@friendica.com> | 2012-12-29 00:33:04 -0800 |
---|---|---|
committer | friendica <info@friendica.com> | 2012-12-29 00:33:04 -0800 |
commit | 098de66c2fcda2e6e2449640e888a0d1f9e5aa84 (patch) | |
tree | b4d445749234a04906cf8bc7f7b779735ab597f9 /include/text.php | |
parent | 70153a22744bf96bab4b1f76ab0841fd999ddd6e (diff) | |
download | volse-hubzilla-098de66c2fcda2e6e2449640e888a0d1f9e5aa84.tar.gz volse-hubzilla-098de66c2fcda2e6e2449640e888a0d1f9e5aa84.tar.bz2 volse-hubzilla-098de66c2fcda2e6e2449640e888a0d1f9e5aa84.zip |
probe diagnostic translated to zot, will use your current channel for permissions, logout to check anonymous permissions
Diffstat (limited to 'include/text.php')
-rw-r--r-- | include/text.php | 58 |
1 files changed, 58 insertions, 0 deletions
diff --git a/include/text.php b/include/text.php index 3ca0b3b6d..36b465bea 100644 --- a/include/text.php +++ b/include/text.php @@ -1762,3 +1762,61 @@ function stringify_array_elms(&$arr) { for($x = 0; $x < count($arr); $x ++) $arr[$x] = "'" . $arr[$x] . "'"; } + +/** + * Indents a flat JSON string to make it more human-readable. + * + * @param string $json The original JSON string to process. + * + * @return string Indented version of the original JSON string. + */ +function jindent($json) { + + $result = ''; + $pos = 0; + $strLen = strlen($json); + $indentStr = ' '; + $newLine = "\n"; + $prevChar = ''; + $outOfQuotes = true; + + for ($i=0; $i<=$strLen; $i++) { + + // Grab the next character in the string. + $char = substr($json, $i, 1); + + // Are we inside a quoted string? + if ($char == '"' && $prevChar != '\\') { + $outOfQuotes = !$outOfQuotes; + + // If this character is the end of an element, + // output a new line and indent the next line. + } else if(($char == '}' || $char == ']') && $outOfQuotes) { + $result .= $newLine; + $pos --; + for ($j=0; $j<$pos; $j++) { + $result .= $indentStr; + } + } + + // Add the character to the result string. + $result .= $char; + + // If the last character was the beginning of an element, + // output a new line and indent the next line. + if (($char == ',' || $char == '{' || $char == '[') && $outOfQuotes) { + $result .= $newLine; + if ($char == '{' || $char == '[') { + $pos ++; + } + + for ($j = 0; $j < $pos; $j++) { + $result .= $indentStr; + } + } + + $prevChar = $char; + } + + return $result; +} |