php 序列化與反序列化

2021-08-28 20:07:54 字數 1573 閱讀 8158

序列化

反序列化序列化

例一

class

user

}$number=66

;$str

='jerry'

;$bool

=true

;$null

=null

;$arr

=array

('a'

=>1,

'b'=

>2)

;$user

=new

user

('tom'

,true);

var_dump

(serialize

($number))

;var_dump

(serialize

($str))

;var_dump

(serialize

($bool))

;var_dump

(serialize

($null))

;var_dump

(serialize

($arr))

;var_dump

(serialize

($user))

;

輸出結果

string(5

)"i:66;"

string(12

)"s:5:"jerry";"

string(4

)"b:1;"

string(2

)"n;"

string(30

)"a:2:"

string(93

)"o:4:"user":4:"

注:序列化物件時,不會儲存常量的值。對於父類中的變數,則會保留。

例二(物件序列化自定義)

class

user

// 過載序列化呼叫的方法

public

function

__sleep()

}$user

=new

user

('spike'

,'kk'

,'123456');

var_dump

(serialize

($user))

;

輸出結果(忽略了 password 欄位的值):

string(66

)"o:4:"user":2:"

反序列化
class

user

// 定義反序列化後呼叫的方法

public

function

__wakeup()

}$user

='o:4:"user":2:'

;var_dump

(unserialize

($user))

;

輸出結果:

object

(user)

#1 (3)

php序列化與反序列化

php的序列化 反序列化對與一些大檔案的壓縮操作,讀寫操作十分有用。乙個簡單的序列化案例 同時用到了序列化與反序列化函式,二者在被呼叫時會分別自己呼叫對應的函式,sleep 以及 wakeup.sleep和 wakeup練習題 故事 乙個果農生產了很多水果種類,於是需要把乙個買家指定的種類寄給他,生...

php序列化與反序列化

jarvisoj上的一道題 是關於php序列化以及反序列化引起的問題,我看 wp大神的wp 題目給直接給出了源 這句話是關鍵,漏洞產生在php serialize和php解析方式上。如果我們通過php serialize的方式構造序列化語句,然後通過php的方式解析序列化語句,就會出現問題。原因是在...

PHP序列化與反序列化

物件序列化 class site function geturl function settitle par function gettitle s new site var dump serialize s string 41 o 4 site 2 s url s title cdr s blog...