文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>php中的序列化与反序列化

php中的序列化与反序列化

时间:2008-04-15  来源:剑心通明


1.serialize()  unserialize(),这个大家用的最多, 老熟人了
session保存默认用的就是这个.
如果想存储
[url=javascript:;]对象[/url]
,数组数据等可以用(试试跟var_export()比较)
[php]
session_start();
echo $foo = serialize($_SESSION)
print_r(unserialize($foo));
[/php]
2.xmlrpc_encode, xmlrpc_decode 对应模块 php_xmlrpc
xmlrpc提供了
[url=javascript:;]php[/url]

[url=javascript:;]xml[/url]
格式间转换的
[url=javascript:;]方法[/url]
.
参考
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过来的话
[url=javascript:;]apache[/url]
就给处理好了
注意两个设置
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.应用
看帖的每人贡献一个或补充一条


相关阅读 更多 +
排行榜 更多 +
西安交大通

西安交大通

生活实用 下载
长江云通

长江云通

生活实用 下载
translatez

translatez

生活实用 下载