分类:
2008-04-15 17:48:42
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]
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过来的话就给处理好了
注意两个设置
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.应用
看帖的每人贡献一个或补充一条