首頁 後端開發 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脫衣器

AI Hentai Generator

AI Hentai Generator

免費產生 AI 無盡。

熱門文章

R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
2 週前 By 尊渡假赌尊渡假赌尊渡假赌
倉庫:如何復興隊友
4 週前 By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island冒險:如何獲得巨型種子
3 週前 By 尊渡假赌尊渡假赌尊渡假赌

熱工具

記事本++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是什麼文件?

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

php提交表单通过后,弹出的对话框怎样在当前页弹出,该如何解决

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

使用PHP unserialize()函數實現反序列化

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

data資料夾裡面是什麼數據

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

淺析php中serialize和unserialize的用法

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亂碼怎麼辦

AI 專案失敗率高達 80%——研究指出問題識別不佳以及主要問題中對最新技術趨勢的關注 AI 專案失敗率高達 80%——研究指出問題識別不佳以及主要問題中對最新技術趨勢的關注 Aug 31, 2024 am 12:59 AM

AI 專案失敗率高達 80%——研究指出問題識別不佳以及主要問題中對最新技術趨勢的關注

See all articles