首页 / PHP / 序列化/反序列化php对象
序列化/反序列化php对象
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了序列化/反序列化php对象,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1119字,纯文字阅读大概需要2分钟。
内容图文
![序列化/反序列化php对象](/upload/InfoBanner/zyjiaocheng/815/6968f91a9c6a4f989592e2e395caa6af.jpg)
我无法理解PHP中序列化/反序列化的概念.
假设我有一个非常简单的PHP对象(类someObject),并且在设置该对象的属性之后我想序列化它:
所以我调用:serialize($someObject);
我想通过html表单将此序列化对象转移到另一个php skript中,因此我将其设置为隐藏值:
<input type="hidden" name="someObject" value="<? print $someObject; ?>"
在下一个PHP脚本中,我想使用unserialize来获取我的对象并将其传输,例如到数据库.
$unserialize = unserialize($_POST['someObject'])
但这总是返回BOOL(假) – 所以我在这里缺少什么?
谢谢你的帮助!
解决方法:
序列化字符串如下所示:
O:1:"a":1:{s:3:"foo";s:3:"100";}
你有序列化字符串的tourlencode / urldecode,以防止序列化表示中的任何字符破坏你的标记.看看你的页面来源.第一个引用可能会结束您的HTML值属性.所以你有类似的东西:
<input ... value="O:1:"a":1:{s:3:"foo";s:3:"100";}">
所以你的$_POST永远不会包含完整的序列化字符串,但只包含O:1:
如果这不是问题,请确保首先从对象获得序列化字符串.另请注意,某些对象在(未)序列化时无法序列化或具有已修改的行为.请参考Notes in PHP Manual for serialize for details.
如果您不需要在运行PHP的不同服务器上发送对象,请考虑将它们保存在Session中.它更容易,更不容易出错并且更安全,因为在传输过程中对象不能被篡改.
内容总结
以上是互联网集市为您收集整理的序列化/反序列化php对象全部内容,希望文章能够帮你解决序列化/反序列化php对象所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。