php序列化函数serialize() 和 unserialize() 与原生函数对比


Posted in PHP onMay 08, 2015

php中有格式化字符串并转换成数组或对象的好方法,即序列化处理。
有两种序列化变量的方法。

以下示例,使用 serialize() 和 unserialize() 函数:

// a complex array
$myvar = array(
 'hello',
 42,
 array(1,'two'),
 'apple'
);

// convert to a string
$string = serialize($myvar);

echo $string;
/* prints
a:4:{i:0;s:5:"hello";i:1;i:42;i:2;a:2:{i:0;i:1;i:1;s:3:"two";}i:3;s:5:"apple";}
*/

// you can reproduce the original variable
$newvar = unserialize($string);

print_r($newvar);
/* prints
Array
(
  [0] => hello
  [1] => 42
  [2] => Array
    (
      [0] => 1
      [1] => two
    )

  [3] => apple
)
*/

这是原生的 PHP 序列化方法。

然而,由于 JSON 近年来大受欢迎,PHP5.2 中已经加入了对 JSON 格式的支持。

现在你可以使用 json_encode() 和 json_decode() 函数:

// a complex array
$myvar = array(
 'hello',
 42,
 array(1,'two'),
 'apple'
);

// convert to a string
$string = json_encode($myvar);

echo $string;
/* prints
["hello",42,[1,"two"],"apple"]
*/

// you can reproduce the original variable
$newvar = json_decode($string);

print_r($newvar);
/* prints
Array
(
  [0] => hello
  [1] => 42
  [2] => Array
    (
      [0] => 1
      [1] => two
    )

  [3] => apple
)
*/

这将更为行之有效,尤其与 JavaScript 等许多其他语言兼容。

注意:对于复杂的对象,某些信息可能会丢失。

以上所述就是本文的全部内容了,希望大家能够喜欢。

PHP 相关文章推荐
用PHP的ob_start();控制您的浏览器cache!
Nov 25 PHP
PHP 开发环境配置(Zend Server安装)
Apr 28 PHP
snoopy 强大的PHP采集类使用实例代码
Dec 09 PHP
php小型企业库存管理系统的设计与实现代码
May 16 PHP
PHP网站备份程序代码分享
Jun 10 PHP
php设计模式 Chain Of Responsibility (职责链模式)
Jun 26 PHP
解析web文件操作常见安全漏洞(目录、文件名检测漏洞)
Jun 29 PHP
php绘图中显示不出图片的原因及解决
Mar 05 PHP
你可能不知道PHP get_meta_tags()函数
May 12 PHP
thinkphp学习笔记之多表查询
Jul 28 PHP
php获取一个变量的名字的方法
Sep 05 PHP
php根据一个给定范围和步进生成数组的方法
Jun 19 PHP
php中header跳转使用include包含解决参数丢失问题
May 08 #PHP
PHP中is_file()函数使用指南
May 08 #PHP
PHP5.2下preg_replace函数的问题
May 08 #PHP
PHP中is_dir()函数使用指南
May 08 #PHP
php中file_exists函数使用详解
May 08 #PHP
PHP时间和日期函数详解
May 08 #PHP
PHP数组和explode函数示例总结
May 08 #PHP
You might like
PHP中文件读、写、删的操作(PHP中对文件和目录操作)
2012/03/06 PHP
php解析url的三个示例
2014/01/20 PHP
PHP实现XML与数据格式进行转换类实例
2015/07/29 PHP
详解php curl带有csrf-token验证模拟提交方法
2018/04/18 PHP
PHPExcel实现表格导出功能示例【带有多个工作sheet】
2018/06/13 PHP
JS类中定义原型方法的两种实现的区别
2007/03/08 Javascript
jquery实现简单的拖拽效果实例兼容所有主流浏览器(优化篇)
2013/06/28 Javascript
JavaScript函数的4种调用方法详解
2014/04/22 Javascript
JS实现往下不断流动网页背景的方法
2015/02/27 Javascript
javascript模拟评分控件实现方法
2015/05/13 Javascript
JS获取地址栏参数的两种方法(简单实用)
2016/06/14 Javascript
angular2中router路由跳转navigate的使用与刷新页面问题详解
2017/05/07 Javascript
vue.js select下拉框绑定和取值方法
2018/03/03 Javascript
浅谈JS对象添加getter与setter的5种方法
2018/06/09 Javascript
详解JavaScript的内存空间、赋值和深浅拷贝
2019/04/17 Javascript
使用layer弹窗,制作编辑User信息页面的方法
2019/09/27 Javascript
layui table 复选框跳页后再回来保持原来选中的状态示例
2019/10/26 Javascript
JavaScript检测是否开启了控制台(F12调试工具)
2020/10/02 Javascript
[04:44]DOTA2 2017全国高校联赛视频回顾
2017/08/21 DOTA
[50:48]LGD vs CHAOS 2019国际邀请赛小组赛 BO2 第二场 8.15
2019/08/16 DOTA
[43:24]完美世界DOTA2联赛PWL S3 INK ICE vs DLG 第二场 12.12
2020/12/17 DOTA
Python有序字典简单实现方法示例
2017/09/28 Python
Pytorch通过保存为ONNX模型转TensorRT5的实现
2020/05/25 Python
python是怎么被发明的
2020/06/15 Python
Python批量获取并保存手机号归属地和运营商的示例
2020/10/09 Python
垃圾回收的优点和原理
2014/05/16 面试题
物业管理员岗位职责范文
2013/11/25 职场文书
校园奶茶店创业计划书
2014/01/23 职场文书
学生生病请假条范文
2014/02/16 职场文书
民间个人借款协议书
2014/09/30 职场文书
2014年污水处理厂工作总结
2014/12/19 职场文书
2015年上半年计生工作总结
2015/03/30 职场文书
学生会招新宣传语
2015/07/13 职场文书
iPhone13将有八大升级
2021/04/15 数码科技
「约定的梦幻岛」作画发布诺曼生日新绘
2022/03/21 日漫
Python测试框架pytest高阶用法全面详解
2022/06/01 Python