本文讲述了php格式化json函数的示例代码。分享给大家供大家参考,具体如下:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
|
<?php
$arr = array ( "ret" =>0, "data" => array ( 'a' => 1, 'b' => '2' , 'c' => 3, 'd' => 4, 'e' => 5));
$json = json_encode( $arr );
/**
* Formats a JSON string for pretty printing
*
* @param string $json The JSON to make pretty
* @param bool $html Insert nonbreaking spaces and <br />s for tabs and linebreaks
* @return string The prettified output
*/
function _format_json( $json , $html = false) {
$tabcount = 0;
$result = '' ;
$inquote = false;
$ignorenext = false;
if ( $html ) {
$tab = " " ;
$newline = "<br/>" ;
} else {
$tab = "\t" ;
$newline = "\n" ;
}
for ( $i = 0; $i < strlen ( $json ); $i ++) {
$char = $json [ $i ];
if ( $ignorenext ) {
$result .= $char ;
$ignorenext = false;
} else {
switch ( $char ) {
case '{' :
$tabcount ++;
$result .= $char . $newline . str_repeat ( $tab , $tabcount );
break ;
case '}' :
$tabcount --;
$result = trim( $result ) . $newline . str_repeat ( $tab , $tabcount ) . $char ;
break ;
case ',' :
$result .= $char . $newline . str_repeat ( $tab , $tabcount );
break ;
case '"' :
$inquote = ! $inquote ;
$result .= $char ;
break ;
case '\\' :
if ( $inquote ) $ignorenext = true;
$result .= $char ;
break ;
default :
$result .= $char ;
}
}
}
return $result ;
}
echo _format_json( $json );
/*
{
"ret": 0,
"data": {
"a": 1,
"b": 2,
"c": 3,
"d": 4,
"e": 5
}
}
**/
?>
|
希望本文所述对大家PHP程序设计有所帮助。