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中序列化与反序列化的主要内容,如果未能解决你的问题,请参考以下文章