顶部468*60ad 顶部468*60ad

PHP串行化与JSON

2008-06-19 02:36:52  来源:baidu.com 


PHP串行化实例

数组的串行化和反串行化
OK,让我们来用实例学习一下,首先,请建立sample1.php文件,我们在这个文件中用如下语句来创建一个哈希数组:

代码:

<?php
$animal =
array
(
"type" => "human",
"name" => "hanguofeng",
"age"   => "20"
);
?>
为了测试这个数组的值,你可以使用print_r()函数来输出数组,输出的结果如下:
代码:
Array
(
[type] => human
[name] => hanguofeng
[age] => 20
)
那么我们将他来串行化一下,串行化的代码如下:
代码:
<?php
$animal =
array
(
"type" => "human",
"name" => "hanguofeng",
"age"   => "20"
);
$animal_ser=serialize($animal);
echo($animal_ser);
?>
这里我们将数组$animal串行化,将返回的串行化字符串保存在变量$animal_ser中,并输出,输出的结果是:
代码:
a:3:{s:4:"type";s:5:"human";s:4:"name";s:10:"hanguofeng";s:3:"age";s:2:"20";}
我们来简单对这个字符串进行一个解析:
a:3表示这是一个数组型的对象(a),他共有三个内置的对象(3)
大括号里面的部分是以逗号分割的对象表达式列表,以s:4:"type"为例,他表示一个字符串(s),长度为4位(4),值为“type”,即哈希数组的第一个元素的键。
后面的部分以此类推,我们不再赘述,你可以试试自己将各种对象串行化,看看串行化后的字符串是如何构建的。
下面来看数组的反串行化,即将我们上面生成的串行化字符串恢复为数组,代码如下:
代码:
<?php
$animal_ser='a:3:{s:4:"type";s:5:"human";s:4:"name";s:10:"hanguofeng";s:3:"age";s:2:"20";}';
$animal = unserialize($animal_ser);
print_r($animal);
?>
在第一行中,我们假设$animal_ser的值为上面获得的串行化字符串,在第二行将该字符串恢复为开始的数组,并赋值给$animal,最后输出$animal这个数组,此时的输出和本节开始时输出的原始数组是一样的,即:
代码:
Array
(
[type] => human
[name] => hanguofeng
[age] => 20
)

这样我们就完成了数组的反串行化。

文章评论

共有 0 位网友发表了评论 查看完整内容