Improved/optimized CDR engine reports (and patient reminders) and added a
[openemr.git] / library / openflashchart / php-ofc-library / json_format.php
blobb8e3de5cb1cee38dd844870f0199733c2370272c
1 <?php
3 // Pretty print some JSON
4 function json_format($json)
6 $tab = " ";
7 $new_json = "";
8 $indent_level = 0;
9 $in_string = false;
12 commented out by monk.e.boy 22nd May '08
13 because my web server is PHP4, and
14 json_* are PHP5 functions...
16 $json_obj = json_decode($json);
18 if($json_obj === false)
19 return false;
21 $json = json_encode($json_obj);
23 $len = strlen($json);
25 for($c = 0; $c < $len; $c++)
27 $char = $json[$c];
28 switch($char)
30 case '{':
31 case '[':
32 if(!$in_string)
34 $new_json .= $char . "\n" . str_repeat($tab, $indent_level+1);
35 $indent_level++;
37 else
39 $new_json .= $char;
41 break;
42 case '}':
43 case ']':
44 if(!$in_string)
46 $indent_level--;
47 $new_json .= "\n" . str_repeat($tab, $indent_level) . $char;
49 else
51 $new_json .= $char;
53 break;
54 case ',':
55 if(!$in_string)
57 $new_json .= ",\n" . str_repeat($tab, $indent_level);
59 else
61 $new_json .= $char;
63 break;
64 case ':':
65 if(!$in_string)
67 $new_json .= ": ";
69 else
71 $new_json .= $char;
73 break;
74 case '"':
75 if($c > 0 && $json[$c-1] != '\\')
77 $in_string = !$in_string;
79 default:
80 $new_json .= $char;
81 break;
85 return $new_json;