php中有格式化字符串并转换成数组或对象的好方法,即序列化处理。
有两种序列化变量的方法。
以下示例,使用 serialize() 和 unserialize() 函数:
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
|
// a complex array
$myvar = array (
'hello' ,
42,
array (1, 'two' ),
'apple'
);
// convert to a string
$string = serialize( $myvar );
echo $string ;
/* prints
a:4:{i:0;s:5:"hello";i:1;i:42;i:2;a:2:{i:0;i:1;i:1;s:3:"two";}i:3;s:5:"apple";}
*/
// you can reproduce the original variable
$newvar = unserialize( $string );
print_r( $newvar );
/* prints
Array
(
[0] => hello
[1] => 42
[2] => Array
(
[0] => 1
[1] => two
)
[3] => apple
)
*/
|
这是原生的 PHP 序列化方法。
然而,由于 JSON 近年来大受欢迎,PHP5.2 中已经加入了对 JSON 格式的支持。
现在你可以使用 json_encode() 和 json_decode() 函数:
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
|
// a complex array
$myvar = array (
'hello' ,
42,
array (1, 'two' ),
'apple'
);
// convert to a string
$string = json_encode( $myvar );
echo $string ;
/* prints
["hello",42,[1,"two"],"apple"]
*/
// you can reproduce the original variable
$newvar = json_decode( $string );
print_r( $newvar );
/* prints
Array
(
[0] => hello
[1] => 42
[2] => Array
(
[0] => 1
[1] => two
)
[3] => apple
)
*/
|
这将更为行之有效,尤其与 JavaScript 等许多其他语言兼容。
注意:对于复杂的对象,某些信息可能会丢失。
以上所述就是本文的全部内容了,希望大家能够喜欢。