本文實例講述了PHP常見的序列化與反序列化操作。分享給大家供大家參考,具體如下:
1.概念
serialize()
把變量和它們的值編碼成文本形式
unserialize()
恢復原先變量
2.序列化例子
輸入輸出
$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) "上海市浦東新區"
}
序列化操作
$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個字符。
3.反序列化列子
$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) "北京市海淀區"
}
4.優缺點
通過序列化我們可以將一些模塊化的數據使用字符串的形式存儲在數據庫或session等,可以減少創建眾多繁瑣的數據表字段,當然序列化為字符串存儲會增加額外的空間,應合理的設計和應用。
這有利于存儲或傳遞 PHP 的值,同時不丟失其類型和結構。
更多關于PHP相關內容感興趣的讀者可查看本站專題:《PHP基本語法入門教程》、《PHP數組(Array)操作技巧大全》、《php字符串(string)用法總結》、《php+mysql數據庫操作入門教程》及《php常見數據庫操作技巧匯總》
希望本文所述對大家PHP程序設計有所幫助。
您可能感興趣的文章:- 詳解php反序列化
- php反序列化長度變化尾部字符串逃逸(0CTF-2016-piapiapia)
- 淺析PHP反序列化中過濾函數使用不當導致的對象注入問題
- JSON PHP中,Json字符串反序列化成對象/數組的方法
- 詳解PHP序列化和反序列化原理
- PHP序列化和反序列化深度剖析實例講解