首页 后端开发 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.能量晶体解释及其做什么(黄色晶体)
3 周前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳图形设置
3 周前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您听不到任何人,如何修复音频
3 周前 By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25:如何解锁Myrise中的所有内容
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代表网页的首页文件,是网站的默认页面。当用户访问一个网站时,通常会首先加载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中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是索引的意思,是一种数据结构,用于加快数据库表的查询速度,索引可以类比于书籍的目录,存储了表中特定列的值和对应的行位置,使得数据库能够更快地定位和访问数据。索引的作用是提高查询效率,在没有索引的情况下,数据库需要逐行扫描整个表来找到匹配的数据,这种方式在大型表中会非常耗时,而有了索引后,数据库可以根据索引的顺序快速定位到所需的数据行,大大提高了查询速度。

PHP源码运行问题:index报错解决方法 PHP源码运行问题:index报错解决方法 Mar 09, 2024 pm 09:24 PM

PHP源码运行问题:index报错解决方法,需要具体代码示例PHP是一种广泛使用的服务器端脚本语言,经常被用于开发动态网站和Web应用程序。然而,有时候在运行PHP源码时会遇到各种问题,其中“index报错”是比较常见的一种情况。本文将介绍一些常见的index报错原因以及解决方法,并提供具体的代码示例,帮助读者更好地处理这类问题。问题描述:在运行PHP程序时

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