设为首页 收藏本站
查看: 645|回复: 0

[经验分享] php中的序列化与反序列化

[复制链接]

尚未签到

发表于 2017-4-3 13:23:34 | 显示全部楼层 |阅读模式
  1.serialize() <===> unserialize(),这个大家用的最多, 老熟人了
session保存默认用的就是这个.
如果想存储对象,数组数据等可以用(试试跟var_export()比较)
[php]
session_start();
echo $foo = serialize($_SESSION)
print_r(unserialize($foo));
[/php]

2.xmlrpc_encode, xmlrpc_decode 对应模块 php_xmlrpc
xmlrpc提供了php与xml格式间转换的方法.
参考http://www.xmlrpc.com/, http://www.ugia.cn
相信很多人都在用
[php]
echo $foo = xmlrpc_encode($_ENV);
print_r(xmlrpc_encode($foo));
[/php]

3.wddx, 跟xmlrpc差不多 参考手册
应用搜搜google就知道了.
[php]
//wddx_serialize_vars();
echo $foo = wddx_serialize_value($_SERVER);
print_r(wddx_deserialize($foo));
[/php]

4.JSON, 对应模块 php_json, 能实现跟js对象之间的转换,
提供的函数有两个json_encode(), json_decode();
应用及优势参考文章http://www.cswiki.com/blog/?p=70
google, yahoo都在用, prototype.js可以用header('X-JSON:...');
AJAX
[php]
//注意格式及中文问题
$foo = '[{"uid":1000,"name":"abc"},{"uid":1002,"name":"def"},{"uid":1003,"name":"ghi"}]';
$bar = json_decode($foo);
print_r($bar);
echo json_encode($bar);
[/php]

5.urlparam序列化http_build_query()也算吧,反序列化方法很多,url过来的话apache就给处理好了
注意两个设置
arg_separator.output
arg_separator.input

string http_build_query ( array formdata [, string numeric_prefix]);
[php]
//可以是对象或整形下标数组,见手册
$foo = array(    'ids'=>array(520, 521, 522),
'action'=>'del'
);
echo http_build_query($foo);
[/php]

6.一个设置:unserialize_callback_func PHP_INI_ALL
[手册]:如果反序列器发现有未定义类要被实例化,将会调用反序列回调函数(使用未定义类作为参数)。
如果指定函数不存在,或者此函数没有包含/执行该未定义类,则显示警告。所以只有在你确实想要执行
这样的回调函数时才设置该选项。
(模块设置略)
[php]
ini_set('unserialize_callback_func', 'unserialize_callback_func');

function unserialize_callback_func($str) {
eval("class $str{}");
}

print_r(unserialize('O:3:"foo":1:{s:3:"bar";s:3:"bar";}'));
[/php]

7.我不知道的及自定义的如pear中有一个序列化url参数的
8.应用

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-359644-1-1.html 上篇帖子: CI框架如何删除地址栏的 index.php 下篇帖子: PHP中parse_url取URL相关信息
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表