国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發 > PHP > 正文

PHP的serialize序列化數據以及JSON格式化數據分析

2024-05-04 23:39:30
字體:
來源:轉載
供稿:網友

這篇文章的內容是PHP的serialize序列化數據以及JSON格式化數據分析,需要的朋友可以參考下

PHP的serialize是將變量序列化,返回一個具有變量類型和結構的字符串表達式,而JSON則是一種更輕、更友好的用于接口(AJAX、REST等)數據交換的格式。 其實兩者都是以一種字符串的方式來體現一種數據結構。那么他們之間又有什么區別呢?

serialize序列化

我們在一些老的WEB系統中可能會看到在數據庫或在文本文件中存儲著一大串貌似有著特殊含義的字符串文本內容。我們仔細看會發現它具有數據類型和結構等信息,但是它并不容易人工閱讀,它只適合PHP程序讀取。PHP的serialize將數組進行了序列化并存儲。我們假設有這樣一個數組:

 

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

我們要將這個數組內容存儲在數據庫或者文本文件中,以便其他地方讀取。

 

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

我們使用PHP的serialize將數組進行序列化,輸出以下結果:

 

 
  1. a:2:{i:0;a:4:{s:8:"gameName";s:6:"德乙";s:8:"homeName";s:15:"比勒費爾德";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";}}  

以上輸出的結果看上去比較復雜,其實也很簡單,它說明的就是一些數據類型和結構。

a:2說明這是個有兩個元素的數組(array);

i:0指序列索引;

a:4指有4個字段

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

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

 

 
  1. print_r(unserialize($serialize));  

以上代碼可以打印出數組。

JSON數據解析

我們知道,PHP操作JSON可以使用json_encode()和json_decode()兩個函數。json_encode()可以將數組轉換成json格式的文本數據,它方便存儲和讀取,而json_decode()可以直接將json數據轉換成數組,方便調用。

 

 
  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后,數據空間要比serialize少,輸出的結果中中文字符串經過編碼,仔細看是鍵值對應,便于人工識別,而且關鍵是JSON格式的數據方便其他語種讀取并識別,所以有人說它是XML替代品。JSON格式的數據能和WEB前端JS完成異步交互過程。如果要將json還原成數組,可以使用json_decode()函數。

print_r(json_decode($jsonencode,true));

關于JSON的應用有興趣的同學可以參考本站文章:PHP中JSON的應用

總結

PHP的serialize將數組序列化后是便于存儲,而JSON格式的數據不僅便于存儲還能跟其他語言如javascript讀取。它們在性能上可能會有細微區別,如果前后端交互使用比較多的話建議使用JSON,結合PHP、Javascript、JSON以及Ajax就可以完成強大的數據交互功能。

關于PHP的serialize序列化數據以及JSON格式化數據詳細分析就這么多,如果想了解更多的內容請繼續關注。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 北宁市| 边坝县| 三门县| 淮北市| 遵义县| 历史| 霍城县| 合肥市| 四子王旗| 丹凤县| 乌海市| 金乡县| 福海县| 年辖:市辖区| 麻江县| 沅江市| 临邑县| 新平| 义马市| 庆安县| 石棉县| 庄河市| 白河县| 海安县| 江门市| 台北县| 昭觉县| 通州区| 忻州市| 宣化县| 左权县| 襄城县| 大连市| 曲麻莱县| 巴林左旗| 广昌县| 靖州| 三台县| 灵武市| 九龙城区| 鲁山县|