麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁(yè) > 開(kāi)發(fā) > PHP > 正文

PHP的serialize序列化數(shù)據(jù)以及JSON格式化數(shù)據(jù)分析

2024-05-04 23:39:30
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

這篇文章的內(nèi)容是PHP的serialize序列化數(shù)據(jù)以及JSON格式化數(shù)據(jù)分析,需要的朋友可以參考下

PHP的serialize是將變量序列化,返回一個(gè)具有變量類(lèi)型和結(jié)構(gòu)的字符串表達(dá)式,而JSON則是一種更輕、更友好的用于接口(AJAX、REST等)數(shù)據(jù)交換的格式。 其實(shí)兩者都是以一種字符串的方式來(lái)體現(xiàn)一種數(shù)據(jù)結(jié)構(gòu)。那么他們之間又有什么區(qū)別呢?

serialize序列化

我們?cè)谝恍├系腤EB系統(tǒng)中可能會(huì)看到在數(shù)據(jù)庫(kù)或在文本文件中存儲(chǔ)著一大串貌似有著特殊含義的字符串文本內(nèi)容。我們仔細(xì)看會(huì)發(fā)現(xiàn)它具有數(shù)據(jù)類(lèi)型和結(jié)構(gòu)等信息,但是它并不容易人工閱讀,它只適合PHP程序讀取。PHP的serialize將數(shù)組進(jìn)行了序列化并存儲(chǔ)。我們假設(shè)有這樣一個(gè)數(shù)組:

 

 
  1. $arr = array(  
  2. "0" => array(  
  3. "gameName" => "德乙",  
  4. "homeName" => "比勒費(fèi)爾德",  
  5. "guestName" => "不倫瑞克",  
  6. "endTime" => "2015-08-21" 
  7. ),  
  8. "1" => array(  
  9. "gameName" => "英超",  
  10. "homeName" => "水晶宮",  
  11. "guestName" => "阿斯頓維拉",  
  12. "endTime" => "2015-08-22" 
  13. )  
  14. );  

我們要將這個(gè)數(shù)組內(nèi)容存儲(chǔ)在數(shù)據(jù)庫(kù)或者文本文件中,以便其他地方讀取。

 

 
  1. $serialize = serialize($arr);  
  2. echo $serialize;  

我們使用PHP的serialize將數(shù)組進(jìn)行序列化,輸出以下結(jié)果:

 

 
  1. a:2:{i:0;a:4:{s:8:"gameName";s:6:"德乙";s:8:"homeName";s:15:"比勒費(fèi)爾德";s:9:"guestName";s:12:"不倫瑞克";s:7:"endTime";s:10:"2015-08-21";}i:1;a:4:{s:8:"gameName";s:6:"英超";s:8:"homeName";s:9:"水晶宮";s:9:"guestName";s:15:"阿斯頓維拉";s:7:"endTime";s:10:"2015-08-22";}}  

以上輸出的結(jié)果看上去比較復(fù)雜,其實(shí)也很簡(jiǎn)單,它說(shuō)明的就是一些數(shù)據(jù)類(lèi)型和結(jié)構(gòu)。

a:2說(shuō)明這是個(gè)有兩個(gè)元素的數(shù)組(array);

i:0指序列索引;

a:4指有4個(gè)字段

s:8:"gameName"說(shuō)明這是有8個(gè)字符的字符串(string)

實(shí)際開(kāi)發(fā)中我們只將序列化后的數(shù)據(jù)進(jìn)行存儲(chǔ),并不要去關(guān)心存儲(chǔ)的格式和以及字段意思。如果要將序列化后的數(shù)據(jù)恢復(fù)成數(shù)組,則使用unserialize()函數(shù)即可。

 

 
  1. print_r(unserialize($serialize));  

以上代碼可以打印出數(shù)組。

JSON數(shù)據(jù)解析

我們知道,PHP操作JSON可以使用json_encode()和json_decode()兩個(gè)函數(shù)。json_encode()可以將數(shù)組轉(zhuǎn)換成json格式的文本數(shù)據(jù),它方便存儲(chǔ)和讀取,而json_decode()可以直接將json數(shù)據(jù)轉(zhuǎn)換成數(shù)組,方便調(diào)用。

 

 
  1. $jsonencode = json_encode($arr);  
  2. echo $jsonencode;  

輸出:

 

 
  1. [{"gameName":"/u5fb7/u4e59","homeName":"/u6bd4/u52d2/u8d39/u5c14/u5fb7","guestName":"/u4e0d/u4f26/u745e/u514b","endTime":"2015-08-21"},{"gameName":"/u82f1/u8d85","homeName":"/u6c34/u6676/u5bab","guestName":"/u963f/u65af/u987f/u7ef4/u62c9","endTime":"2015-08-22"}]  

很顯然,使用JSON后,數(shù)據(jù)空間要比serialize少,輸出的結(jié)果中中文字符串經(jīng)過(guò)編碼,仔細(xì)看是鍵值對(duì)應(yīng),便于人工識(shí)別,而且關(guān)鍵是JSON格式的數(shù)據(jù)方便其他語(yǔ)種讀取并識(shí)別,所以有人說(shuō)它是XML替代品。JSON格式的數(shù)據(jù)能和WEB前端JS完成異步交互過(guò)程。如果要將json還原成數(shù)組,可以使用json_decode()函數(shù)。

print_r(json_decode($jsonencode,true));

關(guān)于JSON的應(yīng)用有興趣的同學(xué)可以參考本站文章:PHP中JSON的應(yīng)用

總結(jié)

PHP的serialize將數(shù)組序列化后是便于存儲(chǔ),而JSON格式的數(shù)據(jù)不僅便于存儲(chǔ)還能跟其他語(yǔ)言如javascript讀取。它們?cè)谛阅苌峡赡軙?huì)有細(xì)微區(qū)別,如果前后端交互使用比較多的話(huà)建議使用JSON,結(jié)合PHP、Javascript、JSON以及Ajax就可以完成強(qiáng)大的數(shù)據(jù)交互功能。

關(guān)于PHP的serialize序列化數(shù)據(jù)以及JSON格式化數(shù)據(jù)詳細(xì)分析就這么多,如果想了解更多的內(nèi)容請(qǐng)繼續(xù)關(guān)注。

發(fā)表評(píng)論 共有條評(píng)論
用戶(hù)名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 国产做爰全免费的视频黑人 | 午夜av男人的天堂 | 91精品免费观看 | 久久伊人国产精品 | 久久777国产线看观看精品 | 国产午夜精品一区二区三区四区 | 偿还电影免费看 | 麻豆一二区 | 福利免费在线 | 久久午夜国产 | 中文字幕 在线观看 | a免费视频 | 亚洲国产色婷婷 | 热99在线| 黄色免费在线电影 | 九九热国产视频 | 欧美片a| 黄色网址进入 | www.guochanav.com| 国产精品久久久久久久久久久久久久久 | 91看片淫黄大片欧美看国产片 | 中文区永久区 | 三级国产三级在线 | 成人在线视频在线观看 | h视频在线观看免费 | 中文字幕激情视频 | 黄色特级一级片 | 毛片免费视频观看 | 久久精品色| 在线视频 日韩 | 久久精品久久久久 | www.狠狠插.com | 色综av| 一级免费a | 国产精品久久久久久久久久久天堂 | 亚洲免费观看视频 | 在线成人一区二区 | 毛片视频网站 | 欧美日韩中文字幕在线视频 | 伊人亚洲精品 | 激情网站免费观看 |