php的serialize和unserialize的用法

serialize --  產生一個可存儲的值的表示 php

描述 string serialize ( mixed value )  數組

serialize() 返回字符串,此字符串包含了表示 value 的字節流,能夠存儲於任何地方。  函數

這有利於存儲或傳遞 PHP 的值,同時不丟失其類型和結構。  測試

想要將已序列化的字符串變回 PHP 的值,可以使用 unserialize()。對象

serialize() 可處理除了 resource 以外的任何類型。甚至能夠 serialize() 那些包含了指向其自身引用的數組。你正 serialize() 的數組/對象中的引用也將被存儲。  字符串

當序列化對象時,PHP 將試圖在序列動做以前調用該對象的成員函數 __sleep()。這樣就容許對象在被序列化以前作任何清除操做。get

相似的,當使用 unserialize() 恢復對象時, 將調用 __wakeup() 成員函數。  回調函數

注意: 在 PHP 3 中,對象屬性將被序列化,可是方法則會丟失。PHP 4 打破了此限制,能夠同時存儲屬性和方法。請參見類與對象中的序列化對象部分獲取更多信息。  string

unserialize (PHP 3 >= 3.0.5, PHP 4, PHP 5)  變量

unserialize --  從已存儲的表示中建立 PHP 的值 

描述 mixed unserialize ( string str [, string callback] )  

unserialize() 對單一的已序列化的變量進行操做,將其轉換回 PHP 的值。

返回的是轉換以後的值,可爲 integer、float、string、array 或 object。若是傳遞的字符串不可解序列化,則返回 FALSE。  

unserialize_callback_func 指令: 若是在解序列化的時候須要實例化一個未定義類,則能夠設置回調函數以供調用(以避免獲得的是不完整的 object 「__PHP_Incomplete_Class」)。可經過 php.ini、ini_set() 或 .htaccess 定義‘unserialize_callback_func’。

每次實例化一個未定義類時它都會被調用。若要禁止這個特性,只需置空此設定。還須要注意的是 unserialize_callback_func 指令是從 PHP 4.2.0 開始提供使用的。  注意: callback 參數是在 PHP 4.2.0 中添加的  若被解序列化的變量是一個對象,在成功地從新構造對象以後,PHP 會自動地試圖去調用 __wakeup() 成員函數(若是存在的話)。  

具體用法: 

1:$arr = array("測試1","測試2","測試3");//數組 

2:$sarr = serialize($arr);//產生一個可存儲的值(用於存儲)

 3://用任意方法(例如:你要是吧$sarr存在一個文本文件中你就能夠用file_get_contents取得)獲得存儲的值保存在$newarr中;

 4:$unsarr=unserialize($newarr);//從已存儲的表示中建立 PHP 的值

相關文章
相關標籤/搜索