PHP常見的序列化與反序列化操作實(shí)例分析
本文實(shí)例講述了PHP常見的序列化與反序列化操作。分享給大家供大家參考,具體如下:
1.概念
serialize()
把變量和它們的值編碼成文本形式
unserialize()
恢復(fù)原先變量
2.序列化例子
輸入輸出
$arr=array(); $arr['name']='張三'; $arr['age']='22'; $arr['sex']='男'; $arr['phone']='123456789'; $arr['address']='上海市浦東新區(qū)'; var_dump($arr);
array(5) {
["name"]=> string(6) "張三"
["age"]=> string(2) "22"
["sex"]=> string(3) "男"
["phone"]=> string(9) "123456789"
["address"]=> string(21) "上海市浦東新區(qū)"
}
序列化操作
$info=serialize($arr); var_dump($info);
輸出結(jié)果
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:"上海市浦東新區(qū)";}"
解析
使用序列化serialize($arr)函數(shù),將數(shù)組中元素的鍵和值按照規(guī)則順序連接成字符串。
a:5標(biāo)志序列化為array包含5個鍵值對,
s:4標(biāo)志內(nèi)容為字符串包含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) "北京市海淀區(qū)"
}
4.優(yōu)缺點(diǎn)
通過序列化我們可以將一些模塊化的數(shù)據(jù)使用字符串的形式存儲在數(shù)據(jù)庫或session等,可以減少創(chuàng)建眾多繁瑣的數(shù)據(jù)表字段,當(dāng)然序列化為字符串存儲會增加額外的空間,應(yīng)合理的設(shè)計(jì)和應(yīng)用。
這有利于存儲或傳遞 PHP 的值,同時不丟失其類型和結(jié)構(gòu)。
更多關(guān)于PHP相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《PHP基本語法入門教程》、《PHP數(shù)組(Array)操作技巧大全》、《php字符串(string)用法總結(jié)》、《php+mysql數(shù)據(jù)庫操作入門教程》及《php常見數(shù)據(jù)庫操作技巧匯總》
希望本文所述對大家PHP程序設(shè)計(jì)有所幫助。
相關(guān)文章
gearman中任務(wù)的優(yōu)先級和返回狀態(tài)實(shí)例分析
這篇文章主要介紹了gearman中任務(wù)的優(yōu)先級和返回狀態(tài),結(jié)合實(shí)例形式分析了gearman任務(wù)的優(yōu)先級以及獲取返回狀態(tài)相關(guān)操作技巧,需要的朋友可以參考下2020-02-02PHP利用ueditor實(shí)現(xiàn)上傳圖片添加水印
在上傳圖片時,有時需要添加水印。如果每個都用PS添加的話,會有些麻煩。本文將為大家介紹PHP如何利用ueditor實(shí)現(xiàn)上傳圖片添加水印,感興趣的可以了解一下2022-07-07PHP常用工具函數(shù)小結(jié)【移除XSS攻擊、UTF8與GBK編碼轉(zhuǎn)換等】
這篇文章主要介紹了PHP常用工具函數(shù),結(jié)合實(shí)例形式總結(jié)分析了php移除XSS攻擊、以及php操作UTF8與GBK編碼轉(zhuǎn)換等相關(guān)操作自定義函數(shù)實(shí)現(xiàn)方法,需要的朋友可以參考下2019-04-04PHP實(shí)現(xiàn)動態(tài)壓縮js與css文件的方法
這篇文章主要介紹了PHP實(shí)現(xiàn)動態(tài)壓縮js與css文件的方法,涉及php文件讀寫及字符串替換等相關(guān)操作技巧,需要的朋友可以參考下2018-05-05