默认教学计划
1839人加入学习
(5人评价)
CTF从入门到提升

入选《爆款好课TOP榜》

价格 ¥ 499.00
音频听课 手机端支持一键听课 (试一试)
该课程属于 网络安全公益-高校篇 请加入后再学习
<?php 
highlight_file(__FILE__); 
class user 
{ 
    //变量 
    public $age=0; 
    public $name=''; 
    #private $name2='leo'; 
    #protected $age2=19; 
    //方法 
    public function print_data() 
    { 
        echo $this->name. ' is ' . $this->age.' years old<br>'; 
    }  
} 
//创建对象 
$usr = new user(); 
//赋值 
$usr->age=18; 
$usr->name='leo'; 
//输出 
$usr->print_data(); 
//输出序列化后的内容 
echo serialize($usr); 
?>

 

结果:leo is 18 years old
O:4:"user":2:{s:3:"age";i:18;s:4:"name";s:3:"leo";}

 

解释:O表示对象,4表示对象名的长度,后面跟的是对象名
2里面有两个变量

s表示变量是字符串,3意思是变量有三个长度

i意思是变量赋的值是整形

值为18

 

<?php
highlight_file(__FILE__);
header("Content_type:text/html;charset=utf-8");
class magic_test
{
	public $data1="Tony";
	public $data2="Leo";
	public function print_dat()
	{
		echo $this->data1 .$this->data2 . "<br>";
	}
	public function __construct()
	{
		echo "__construct<br>";
	} 
	public function __destruct()
	{
		echo "__destruct<br>";
	}
	public function __wakeup()
	{
		echo "__wakeup<br>";
	}
	//__sleep() 该函数必须返回一个需要进行序列化保存的成员属性数组,并且只序列化该函数返回的这些成员属性
	public function __sleep()
	{
		echo "__sleep<br>";
		return array("data1","data2");
		#return array("data");
	}
}
//创建对象,调用__construct
echo "准备创建对象<br>";
$obj = new magic_test();
echo "创建对象完成<br>";

//序列化对象,调用__sleep
echo "准备序列化对象<br>";
$serialized = serialize($obj);
echo "序列化对象完成<br>";

//输出序列化之后的字符串
echo "打印序列化之后的对象";
echo "serialized: ".$serialized."<br>";
echo "打印完成<br>";

//重建对象,调用__wakeup
echo "准备反序列化对象<br>";
$obj2=unserialize($serialized);
echo "反序列化完成<br>";

//调用方法
echo "准备调用方法<br>";
$obj2->print_dat();
echo "调用结束<br>";

//反序列化后会额外在调用__destruct
//脚本结束 调用__destruct
?>

 

[展开全文]

反序列化:
数据(变量)序列化(持久化)
将一个变量的数据“转换为”字符串,但并不是类型转换,目的是将该字符串存储在本地。相反的行为称为反序列化。
序列化和反序列化的目的是使得程序间传输对象会更加方便。

serialize:
产生一个课存储的值的标识
serialize(mixed $value):string

unserialize:
从已存储的表示中创建PHP的值
unserialize(string $str):mixed
unserialize()对单一的已序列化的变量进行操作,将其转换回PHP的值

123.206.87.240:8006/test1

http://123.206.87.240:8006/test1/?txt=php://input
welcome to the bugkuctf

 
 
 
 
 
 
 
 
[展开全文]

授课教师

课程特色

视频(60)
下载资料(15)