php中序列化与反序列化

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了php中序列化与反序列化相关的知识,希望对你有一定的参考价值。

参考技术A 把复杂的数据类型压缩到一个字符串中

serialize() 把变量和它们的值编码成文本形式

unserialize() 恢复原先变量
eg:

结果:a:3:i:0;s:3:"Moe";i:1;s:5:"Larry";i:2;s:5:"Curly";

Array ( [0] => Moe [1] => Larry [2] => Curly )

当把这些序列化的数据放在URL中在页面之间会传递时,需要对这些数据调用urlencode(),以确保在其中的URL元字符进行处理:

margic_quotes_gpc和magic_quotes_runtime配置项的设置会影响传递到unserialize()中的数据。

如果magic_quotes_gpc项是启用的,那么在URL、POST变量以及cookies中传递的数据在反序列化之前必须用stripslashes()进行处理:

如果magic_quotes_runtime是启用的,那么在向文件中写入序列化的数据之前必须用addslashes()进行处理,而在读取它们之前则必须用stripslashes()进行处理:

当对一个对象进行反序列化操作时,php会自动地调用其__wakeUp()方法。这样就使得对象能够重新建立起序列化时未能保留的各种状态。例如:数据库连接等。

以上是关于php中序列化与反序列化的主要内容,如果未能解决你的问题,请参考以下文章

php序列化与反序列化

php序列化与反序列化

PHP 序列化与反序列化函数

php中序列化与反序列化

php序列化与反序列化

浅谈PHP序列化与反序列化