序列化可以將數組等保存為數組,此外,它還可用於發送和接收郵件,這樣說可能不太好理解,本篇文章我們就來介紹關於php序列化的內容。
通常在資料庫中儲存陣列時會發生什麼?
嘗試在資料庫中註冊以下陣列。
["student1", "student2", "student3"]
然後嘗試再次獲取它
'Array("student1", "student2", "student3")'
我們獲取到的是字串,在沒有序列化的情況下在資料庫中註冊後,如果再次檢索它,它將成為一個字符串。
使用foreach語句取得此字串是不行的。
陣列需要作為陣列在資料庫中註冊,這時就需要使用序列化。
我們來使用序列化
要序列化,需要使用serialize函數
此外,結果取決於要序列化的資料類型。
序列化陣列
登入後複製
執行結果為
a:3:{i:0;s:8:"student1";i:1;s:8:"student2";i:2;s:8:"student3";}
請注意,初始[a:3]部分以[type:value ]的形式顯示。
表示陣列的型別是a。
此外,之後的顯示是陣列資料部分,由[key; 值;]表示
#序列化整數
<?php $test = 50; $disp = serialize($test); echo $disp;
結果為
i:50;
序列化字串
<?php $test = 'student'; $disp = serialize($test); echo $disp;
結果為
s:7:"student";
表示字串的型別是s。
在字串的情況下也有數字,但這表示字元數。
序列化很簡單。
然後發送序列化資料或將其保存在資料庫中。
用unserialize進行反序列化
要使用序列化數據,您不能原樣使用它。
必須使用 unserialize來恢復原始型別和結構。
反序列化陣列
"; echo print_r(unserialize($disp));
為了清晰起見,顯示了序列化的$ disp,並設定換行符(
)。
此外,$ disp被反序列化並顯示。
print_r用來顯示陣列的內容。
結果為
a:3:{i:0;s:8:"student1";i:1;s:8:"student2";i:2;s:8:"student3";} Array ( [0] => student1 [1] => student2 [2] => student3 )1
第一行是序列化的結果,第二行是反序列化的結果。
反序列化整數
<?php $test = 50; $disp = serialize($test); echo $disp; echo "
"; echo unserialize($disp);
結果為
i:50; 50
反序列化字串
<?php $test = 'student'; $disp = serialize($test); echo $disp; echo "
"; echo unserialize($disp);
結果為
s:7:"student"; student
恢復序列化資料很容易。
以上是php序列化的用法總結(程式碼範例)的詳細內容。更多資訊請關注PHP中文網其他相關文章!