PHP 序列化和反序列化函数实例详解

5年以前  |  阅读数:851 次  |  编程语言:PHP 

序列化与反序列化

把复杂的数据类型压缩到一个字符串中

serialize() 把变量和它们的值编码成文本形式
unserialize() 恢复原先变量

1.创建一个$arr数组用于储存用户基本信息,并在浏览器中输出查看结果;


    $arr=array();
    $arr['name']='张三';
    $arr['age']='22';
    $arr['sex']='男';
    $arr['phone']='123456789';
    $arr['address']='上海市浦东新区';
    var_dump($arr);

输出结果:


    array(5) { 
    ["name"]=> string(6) "张三" 
    ["age"]=> string(2) "22" 
    ["sex"]=> string(3) "男" 
    ["phone"]=> string(9) "123456789" 
    ["address"]=> string(21) "上海市浦东新区"
     } 

2.将$arr数组进行序列化赋值给$info字符串,并在浏览器中输出查看结果;


    $info=serialize($arr);
    var_dump($info);

输出结果:


    string(140) "a:5:{s:4:"name";s:6:"张三";s:3:"age";s:2:"22";s:3:"sex";s:3:"男";s:5:"phone";s:9:"123456789";s:7:"address";s:21:"上海市浦东新区";}" 

使用序列化serialize($arr)函数,将数组中元素的键和值按照规则顺序连接成字符串。a:5标志序列化为array包含5个键值对,s:4标志内容为字符串包含4个字符。

通过序列化我们可以将一些模块化的数据使用字符串的形式存储在数据库或session等,可以减少创建众多繁琐的数据表字段,当然序列化为字符串存储会增加额外的空间,应合理的设计和应用。

3.最后使用unserialize($info)反序列化将字符串还原成我们需要的数组模式;


    $zhangsan=unserialize($info);
    var_dump($zhangsan);

输出结果:


    array(5) {
    ["name"]=> string(6) "张三" 
    ["age"]=> string(2) "22" 
    ["sex"]=> string(3) "男" 
    ["phone"]=> string(9) "123456789" 
    ["address"]=> string(21) "上海市浦东新区" 
    }

以上所述是小编给大家介绍的PHP 序列化和反序列化函数实例详解,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对脚本之家网站的支持!

 相关文章:
PHP分页显示制作详细讲解
SSH 登录失败:Host key verification failed
获取IMSI
将二进制数据转为16进制以便显示
获取IMEI
文件下载
贪吃蛇
双位运算符
PHP自定义函数获取搜索引擎来源关键字的方法
Java生成UUID
发送邮件
年的日历图
提取后缀名
在Zeus Web Server中安装PHP语言支持
让你成为最历害的git提交人
Yii2汉字转拼音类的实例代码
再谈PHP中单双引号的区别详解
指定应用ID以获取对应的应用名称
Python 2与Python 3版本和编码的对比
php封装的page分页类完整实例