<?php
function
jsonFormat(
$data
,
$indent
=null){
array_walk_recursive
(
$data
, 'jsonFormatProtect');
$data
= json_encode(
$data
);
$data
= urldecode(
$data
);
$ret
= '';
$pos
= 0;
$length
=
strlen
(
$data
);
$indent
= isset(
$indent
)?
$indent
: ' ';
$newline
=
"\n"
;
$prevchar
= '';
$outofquotes
= true;
for
(
$i
=0;
$i
<=
$length
;
$i
++){
$char
=
substr
(
$data
,
$i
, 1);
if
(
$char
=='"' &&
$prevchar
!='\\'){
$outofquotes
= !
$outofquotes
;
}
elseif
((
$char
=='}' ||
$char
==']') &&
$outofquotes
){
$ret
.=
$newline
;
$pos
--;
for
(
$j
=0;
$j
<
$pos
;
$j
++){
$ret
.=
$indent
;
}
}
$ret
.=
$char
;
if
((
$char
==',' ||
$char
=='{' ||
$char
=='[') &&
$outofquotes
){
$ret
.=
$newline
;
if
(
$char
=='{' ||
$char
=='['){
$pos
++;
}
for
(
$j
=0;
$j
<
$pos
;
$j
++){
$ret
.=
$indent
;
}
}
$prevchar
=
$char
;
}
return
$ret
;
}
function
jsonFormatProtect(&
$val
){
if
(
$val
!==true &&
$val
!==false &&
$val
!==null){
$val
= urlencode(
$val
);
}
}
header('content-type:application/json;charset=utf8');
$arr
=
array
(
'status' => true,
'errMsg' => '',
'member' =>
array
(
array
(
'name' => '李',
'gender' => '男'
),
array
(
'name' => '赵',
'gender' => '女'
)
)
);
echo
jsonFormat(
$arr
);
?>