首頁 後端開發 php教程 PHP串行化(序列化)跟反串行化

PHP串行化(序列化)跟反串行化

Jun 13, 2016 pm 12:54 PM
data index name quot unserialize

PHP串行化(序列化)和反串行化

这个和java的序列话是一样的。只是java要实现Serializable这个空接口。


serialize() 把变量和它们的值编码成文本形式

unserialize() 恢复原先变量

什么情况下需要序列化 
当你想把的内存中的对象写入到硬盘 数据库的时候;
当你想在网络上传送对象的时候;
登入後複製

当把这些序列化的数据放在URL中在页面之间会传递时,需要对这些数据调用urlencode(),以确保在其中的URL元字符进行处理

margic_quotes_gpc和magic_quotes_runtime配置项的设置会影响传递到unserialize()中的数据。
如果magic_quotes_gpc项是启用的,那么在URL、POST变量以及cookies中传递的数据在反序列化之前必须用stripslashes()进行处理: 如果magic_quotes_runtime是启用的,那么在向文件中写入序列化的数据之前必须用addslashes()进行处理,而在读取它们之前则必须用stripslashes()进行处理:


也可用array,把一个数组对象系列化。

<?php class Data{
		var $index;
		var $name;
		
		function __construct($index,$name){
			$this->index = $index;
			$this->name = $name;
		}
	}
	
	$data1 = new Data(1, "hello");
	$data2 = new Data(2, "world");
	$arr = array();
	//用ArrayObject也可以。
	//$arr = new ArrayObject();
	$arr[0] = $data1;
	$arr[1] = $data2;
	$str = serialize($arr);

	
	$file = fopen("tmp.txt", "w");
	fwrite($file, $str);
	fclose($file);

	//$file =fopen("tmp.txt", "r");
	$data = file_get_contents("tmp.txt");
	
	//反序列化得到原来的数组对象。
	$obj = unserialize($data);
	print_r($obj[0]);
	echo $obj[0]->name;
	
?>
登入後複製

tmp.txt的内容为:

a:2:{i:0;O:4:"Data":2:{s:5:"index";i:1;s:4:"name";s:5:"hello";}i:1;O:4:"Data":2:{s:5:"index";i:2;s:4:"name";s:5:"world";}}
登入後複製


本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

index.html是什麼文件? index.html是什麼文件? Feb 19, 2024 pm 01:36 PM

index.html代表網頁的首頁文件,是網站的預設頁面。當使用者造訪一個網站時,通常會先載入index.html頁面。 HTML(HypertextMarkupLanguage)是一種用來建立網頁的標記語言,index.html也是一種HTML檔。它包含網頁的結構和內容,以及用於格式化和佈局的標籤和元素。下面是一個範例的index.html程式碼:&lt

php提交表单通过后,弹出的对话框怎样在当前页弹出,该如何解决 php提交表单通过后,弹出的对话框怎样在当前页弹出,该如何解决 Jun 13, 2016 am 10:23 AM

php提交表单通过后,弹出的对话框怎样在当前页弹出php提交表单通过后,弹出的对话框怎样在当前页弹出而不是在空白页弹出?想实现这样的效果:而不是空白页弹出:------解决方案--------------------如果你的验证用PHP在后端,那么就用Ajax;仅供参考:HTML code

使用PHP unserialize()函數實現反序列化 使用PHP unserialize()函數實現反序列化 Jun 27, 2023 am 08:01 AM

序列化是一種將資料結構或物件轉換為便於儲存、傳輸或表示的字串的過程,反之則是將字串解析為原始的資料結構或物件。在PHP中,我們可以使用serialize()函數將一個變數序列化為字串,使用unserialize()函數將字串反序列化為原始的資料結構或物件。本文將聚焦於PHPunserialize()函數的使用及注意事項。一、unserialize

PHP原始碼運行問題:index報錯解決方法 PHP原始碼運行問題:index報錯解決方法 Mar 09, 2024 pm 09:24 PM

PHP原始碼運行問題:index報錯解決方法,需要具體程式碼範例PHP是一種廣泛使用的伺服器端腳本語言,經常被用於開發動態網站和Web應用程式。然而,有時候在運行PHP原始碼時會遇到各種問題,其中「index報錯」是比較常見的情況。本文將介紹一些常見的index報錯原因以及解決方法,並提供具體的程式碼範例,幫助讀者更好地處理這類問題。問題描述:在執行PHP程式時

淺析php中serialize和unserialize的用法 淺析php中serialize和unserialize的用法 Mar 24, 2023 pm 02:57 PM

PHP是一種流行的程式語言,常用於Web開發。其中,serialize和unserialize是兩個非常有用的函數,可以將PHP物件轉換為字串並進行反序列化。

data資料夾裡面是什麼數據 data資料夾裡面是什麼數據 May 05, 2023 pm 04:30 PM

data資料夾裡面是系統及程式的數據,例如軟體的設定和安裝包等,Data資料夾中各個資料夾則代表的是不同類型的資料存放資料夾,無論Data資料指的是檔案名稱Data還是擴充名data,都是系統或程式自訂的資料文件,Data是資料保存的備份類別文件,一般可以用meidaplayer、記事本或word開啟。

mysql index是什麼 mysql index是什麼 Oct 08, 2023 am 11:47 AM

MySQL中的index是索引的意思,是一種資料結構,用於加快資料庫表的查詢速度,索引可以類比於書籍的目錄,儲存了表中特定列的值和對應的行位置,使得資料庫能夠更快地定位和存取資料。索引的作用是提高查詢效率,在沒有索引的情況下,資料庫需要逐行掃描整個表來找到匹配的數據,這種方式在大型表中會非常耗時,而有了索引後,資料庫可以根據索引的順序快速定位到所需的資料行,大大提高了查詢速度。

mysql load data亂碼怎麼辦 mysql load data亂碼怎麼辦 Feb 16, 2023 am 10:37 AM

mysql load data亂碼的解決方法:1、找到出現亂碼的SQL語句;2、修改語句為「LOAD DATA LOCAL INFILE "employee.txt" INTO TABLE EMPLOYEE character set utf8;」即可。

See all articles