PHP 反序列化——入门
0x00 引言
什么是反序列化
- 序列化
- 类对象在存储的过程中需要将对象的信息转换为可以传输的形式,故将对象进行序列化
- 序列化的结果将以字符串的形式存储在临时或持久性存储区,以便对该对象的二次读取
- 用法:serialize()
- 反序列化
- 在对类对象进行使用或者读取时,从存储区读取该字符串,对字符串进行反序列化操作,重新创建该对象
- 用法:unserialize()
类对象的序列化
<?php
class student{
public $name = 'xiaoming';
public $age = 20;
public $score = 60;
}
$a = new student();
serialize($a);
//$a='O:7:"student":3:{s:4:"name";s:8:"xiaoming";s:3:"age";i:20;s:5:"score";i:60;}'
?>
-
定义类:
- 使用
class student定义一个名字为student的类 - 这个类中一共有三个
Public属性
- 使用
-
创建类对象
- 使用
new student(),创建一个student类对象,并将该对象赋给$a
- 使用
-
对类对象进行序列化
- 使用
serialize($a)对类对象$a进行序列化,序列化结果为O:7:"student":3:{s:4:"name";s:8:"xiaoming";s:3:"age";i:20;s:5:"score";i:60;}
- 使用
-
序列化结果分析
### O:7:"student":3:{s:4:"name";s:8:"xiaoming";s:3:"age";i:20;s:5:"score";i:60;} 1. O-Object-对象 2. 7-len(ObjectName)-对象名称长度 3. student-ObjectName-对象名称 4. 3-count(variable)-属性个数 5. s-String-字符串 6. 4-len(String)-字符串长度 7. name-StringValue-字符串值 ### Less...

浙公网安备 33010602011771号