PHP json_encode() 函数介绍
01
<?php
02
/**************************************************************
03
*
04
* 使用特定function对数组中所有元素做处理
05
* @param string &$array 要处理的字符串
06
* @param string $function 要执行的函数
07
* @return boolean $apply_to_keys_also 是否也应用到key上
08
* @access public
09
*
10
*************************************************************/
11
function
arrayRecursive(&
$array
,
$function
,
$apply_to_keys_also
= false)
12
{
13
static
$recursive_counter
= 0;
14
if
(++
$recursive_counter
> 1000) {
15
die
(
'possible deep recursion attack'
);
16
}
17
foreach
(
$array
as
$key
=>
$value
) {
18
if
(
is_array
(
$value
)) {
19
arrayRecursive(
$array
[
$key
],
$function
,
$apply_to_keys_also
);
20
}
else
{
21
$array
[
$key
] =
$function
(
$value
);
22
}
23
24
if
(
$apply_to_keys_also
&&
is_string
(
$key
)) {
25
$new_key
=
$function
(
$key
);
26
if
(
$new_key
!=
$key
) {
27
$array
[
$new_key
] =
$array
[
$key
];
28
unset(
$array
[
$key
]);
29
}
30
}
31
}
32
$recursive_counter
--;
33
}
34
35
/**************************************************************
36
*
37
* 将数组转换为JSON字符串(兼容中文)
38
* @param array $array 要转换的数组
39
* @return string 转换得到的json字符串
40
* @access public
41
*
42
*************************************************************/
43
function
JSON(
$array
) {
44
arrayRecursive(
$array
,
'urlencode'
, true);
45
$json
= json_encode(
$array
);
46
return
urldecode(
$json
);
47
}
48
49
$array
=
array
50
(
51
'Name'
=>
'希亚'
,
52
'Age'
=>20
53
);
54
55
56
echo
JSON(
$array
);
57
?>
这次成功了,运行结果如下:
1
{
"Name"
:
"希亚"
,
"Age"
:
"20"
}