Discuz 反序列化陣列講解

2021-08-18 19:43:39 字數 1547 閱讀 4969

先來例項解釋一下php中的序列化陣列

1<?php

2$arr=array('張三','李四');//定義陣列

3$str= serialize($arr);//這裡是序列化$arr

4echo$str."

";

5$new_arr= unserialize($str);//這裡是反序列化$str

6print_r($new_arr);

7?>

序列化對應的函式為 serialize(), 反序列化對應的函式為:unserialize() 。

可以將前者序列化之後的資料存到資料庫的某個欄位中,使用時再通過反序列化處理。

那麼,在discuz中,我們通過乙個例項來了解如何反序列化處理

以分類資訊中上傳欄位為例。這個欄位是採用先把內容包裝到乙個陣列(內容包含的儲存路徑和這個的id),然後序列化儲存在value欄位中。如果我們只需要其中的路徑。那麼就需要對存入到value欄位中的序列化陣列進行反序列化。當然,這裡需要注意的乙個問題,如圖:

1eval$value_1=stripcslashes($value)}-->

第二步反序列化陣列

1eval$value_2= unserialize($value_1)}-->

1這樣,我們就得出了我們想要的陣列:$value_2。列印出來後的結果為

當然 在這裡我們不能直接使用$value_2,因為它還是乙個陣列,不能直接使用。如果我們需要上圖中的路徑,則直接使用$value_2[url]即可。 收藏

序列化反序列化

只要用到網路開發啊,就一定會用到序列化反序列化。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...

json陣列序列化與反序列化

前台有多組資料以json陣列 引數為modeljson 傳過來需要存入資料庫時 格式如下,每個花括號對應實體類user的相應字段 當以這種形式傳過來時,將其轉為list,再for迴圈進行儲存 listulist jsonutil.tolist modeljson,user.class for use...