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个人网站架设连环讲(四)
Oct 09 PHP
PHP初学入门
Nov 19 PHP
浅析PHP中的字符串编码转换(自动识别原编码)
Jul 02 PHP
php实现可以设置中奖概率的抽奖程序代码分享
Jan 19 PHP
Yii入门教程之目录结构、入口文件及路由设置
Nov 25 PHP
php支持中文字符串分割的函数
May 28 PHP
PHP模板引擎Smarty内置变量调解器用法详解
Apr 11 PHP
总结PHP中数值计算的注意事项
Aug 14 PHP
thinkphp 字母函数详解T/I/N/D/M/A/R/U
Apr 03 PHP
基于ThinkPHP5.0实现图片上传插件
Sep 25 PHP
详解PHP多个进程配合redis的有序集合实现大文件去重
Mar 06 PHP
YII框架行为behaviors用法示例
Apr 26 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
JavaScript 内置对象属性及方法集合
2010/07/04 Javascript
Tips 带三角可关闭的文字提示
2010/10/06 Javascript
jQuery使用动态渲染表单功能完成ajax文件下载
2013/01/15 Javascript
JS保存、读取、换行、转Json报错处理方法
2013/06/14 Javascript
js获取html文件的思路及示例
2013/09/17 Javascript
JavaScript极简入门教程(一):基础篇
2014/10/25 Javascript
js仿苹果iwatch外观的计时器代码分享
2015/08/26 Javascript
详解JavaScript的流程控制语句
2015/11/30 Javascript
使用BootStrap实现用户登录界面UI
2016/08/10 Javascript
javascript实现的左右无缝滚动效果
2016/09/19 Javascript
js实现可旋转的立方体模型
2016/10/16 Javascript
漂亮实用的页面loading(加载)封装代码
2017/02/03 Javascript
Node.js Mongodb 密码特殊字符 @的解决方法
2017/04/11 Javascript
js 发布订阅模式的实例讲解
2017/09/10 Javascript
Vue 中批量下载文件并打包的示例代码
2017/11/20 Javascript
JavaScript设计模式之装饰者模式定义与应用示例
2018/07/25 Javascript
小程序实现展开/收起的效果示例
2018/09/22 Javascript
Vue v-for循环之@click点击事件获取元素示例
2019/11/09 Javascript
bootstrap-table后端分页功能完整实例
2020/06/01 Javascript
[48:38]DOTA2亚洲邀请赛 3.31 小组赛 B组 Mineski vs Secret
2018/03/31 DOTA
Python学习资料
2007/02/08 Python
17个Python小技巧分享
2015/01/23 Python
使用rpclib进行Python网络编程时的注释问题
2015/05/06 Python
Django框架下在视图中使用模版的方法
2015/07/16 Python
django开发之settings.py中变量的全局引用详解
2017/03/29 Python
单链表反转python实现代码示例
2018/02/08 Python
python读取excel指定列数据并写入到新的excel方法
2018/07/10 Python
Python使用scipy模块实现一维卷积运算示例
2019/09/05 Python
Python批量安装卸载1000个apk的方法
2020/04/10 Python
Python中zipfile压缩文件模块的基本使用教程
2020/06/14 Python
Python datetime模块的使用示例
2021/02/02 Python
canvas绘制圆角头像的实现方法
2019/01/17 HTML / CSS
婚宴父亲致辞
2015/07/27 职场文书
教师节随笔
2015/08/15 职场文书
2016年国庆节宣传标语
2015/11/25 职场文书
Pytorch数据读取之Dataset和DataLoader知识总结
2021/05/23 Python