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 相关文章推荐
Zend引擎的发展 [15]
Oct 09 PHP
一个从别的网站抓取信息的例子(域名查询)
Oct 09 PHP
php5.2时间相差8小时
Jan 15 PHP
Snoopy类使用小例子
Apr 15 PHP
PHP初学者常见问题集合 修正版(21问答)
Mar 23 PHP
二招解决php乱码问题
Mar 25 PHP
自己在做项目过程中学到的PHP知识收集
Aug 20 PHP
ThinkPHP CURD方法之where方法详解
Jun 18 PHP
跟我学Laravel之路由
Oct 15 PHP
基于php(Thinkphp)+jquery 实现ajax多选反选不选删除数据功能
Feb 24 PHP
laravel多条件查询方法(and,or嵌套查询)
Oct 09 PHP
PhpStorm 如何优雅的调试Hyperf的方法步骤
Nov 24 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
Apache+php+mysql在windows下的安装与配置图解(最新版)
2008/11/30 PHP
php支持中文字符串分割的函数
2015/05/28 PHP
yii2超好用的日期组件和时间组件
2016/05/05 PHP
php 如何获取文件的后缀名
2016/06/05 PHP
解决windows上php xdebug 无法调试的问题
2020/02/19 PHP
javascript代码加载优化方法
2011/01/30 Javascript
在jQuery 1.5中使用deferred对象的代码(翻译)
2011/03/10 Javascript
js实现鼠标拖动图片并兼容IE/FF火狐/谷歌等主流浏览器
2013/06/06 Javascript
javascript获取web应用根目录的方法
2014/02/12 Javascript
JavaScript 表单处理实现代码
2015/04/13 Javascript
深入浅析javascript立即执行函数
2015/10/23 Javascript
微信小程序 require机制详解及实例代码
2016/12/14 Javascript
微信小程序适配iphoneX的实现方法
2018/09/18 Javascript
Egg.js 中 AJax 上传文件获取参数的方法
2018/10/10 Javascript
JQuery判断radio单选框是否选中并获取值的方法
2019/01/17 jQuery
关于element-ui的隐藏组件el-scrollbar的使用
2019/05/29 Javascript
JavaScript/TypeScript 实现并发请求控制的示例代码
2021/01/18 Javascript
Python利用前序和中序遍历结果重建二叉树的方法
2016/04/27 Python
Python获取暗黑破坏神3战网前1000命位玩家的英雄技能统计
2016/07/04 Python
python开发游戏的前期准备
2019/05/05 Python
python粘包问题及socket套接字编程详解
2019/06/29 Python
在 Linux/Mac 下为Python函数添加超时时间的方法
2020/02/20 Python
python代码xml转txt实例
2020/03/10 Python
解决pyqt5异常退出无提示信息的问题
2020/04/08 Python
python利用xpath爬取网上数据并存储到django模型中
2021/02/26 Python
html5唤起app的方法
2017/11/30 HTML / CSS
美国睫毛、眉毛精华液领导品牌:RevitaLash Cosmetics
2018/03/26 全球购物
德国高品质男装及配饰商城:Cultizm(Raw Denim原色牛仔裤)
2018/04/16 全球购物
北欧最好的童装网上商店:Babyshop
2019/09/15 全球购物
行政总经理岗位职责
2013/12/05 职场文书
高中毕业生生活的自我评价
2013/12/08 职场文书
自我鉴定怎么写
2014/01/12 职场文书
建筑工程毕业生自我鉴定
2014/01/14 职场文书
学习“七一”讲话精神体会
2014/07/08 职场文书
企业优秀团员事迹材料
2014/08/20 职场文书
2014年医务科工作总结
2014/12/18 职场文书