詳解PHP序列化反序列化的方法

2022-09-30 22:03:24 字數 933 閱讀 7969

經常看到一些配置檔案裡面存放的是一些類似帶有格式的變數名稱和值,其實就是乙個序列化的過程,在需要用到這些資料庫的時候會進行乙個反序列化過程,就是將這個字串再還原成他原來的資料結構。下面說說php 如何進行資料的序列化和反序列化的。

php 將資料序列化和反序列化其實就用到兩個函式,serialize和unserialize。

serialize將陣列格式化成有序的字串

unserialize 將陣列還原成陣列

例如:$user=array('moe','larry','curly');

$user=serialize($stooges);

echo '';

print_r($user);

echo '

'; print_r(unserialize($user));

結果:a:3:

array ( [0] => moe [1] => larry [2] => curly )

注意當陣列值包含如雙引號、單引號、冒號或中文等字元時,它們被反序列化後,可能會出現亂碼或格式被打亂的問題。

解決亂碼問題可以使用base64_encode 和base64_decode兩個函式。

例如:$user=array('m','larry','cur');

$user=base64_encode(serialize($user));

$user=unseriali

這樣就不會出現亂碼類的問題了,但是base64 編碼卻增加了儲存字串的長度。

由以上我們可以總結出乙個自己的序列化和反序列化的函式來,如下:

function my_serialize($obj_array)

//反序列化

function my_unserialize($str)程式設計客棧

本文標題: 詳解php序列化反序列化的方法

本文位址:

序列化反序列化

只要用到網路開發啊,就一定會用到序列化反序列化。1,自定義結構體 struct test int len int type char data 10 test data test buffer.缺點 明文,只支援基本型別,不支援變長結構 2,在1的基礎上,自定義乙個緩衝類,存放乙個訊息。把訊息寫入緩...

序列化反序列化

using system using system.collections.generic using system.io using system.linq using system.text using system.threading.tasks namespace 序列化反序列化 syste...

PHP多種序列化 反序列化的方法

序列化是將變數轉換為可儲存或傳輸的字串的過程 反序列化就是在適當的時候把這個字串再轉化成原來的變數使用。這兩個過程結合起來,可以輕鬆地儲存和傳輸資料,使程式更具維護性。1.serialize和unserialize函式 這兩個是序列化和反序列化php中資料的常用函式。序列化陣列 s serializ...