`

php 序列化

    博客分类:
  • php
 
阅读更多

serialize()和unserialize()在php手册上的解释是:
serialize — Generates a storable representation of a value
serialize — 产生一个可存储的值的表示
unserialize — Creates a PHP value from a stored representation
unserialize — 从已存储的表示中创建 PHP 的值
<?php
//声明一个类
class dog {

    var $name;
    var $age;
    var $owner;

    function dog($in_name="unnamed",$in_age="0",$in_owner="unknown") {
        $this->name = $in_name;
        $this->age = $in_age;
        $this->owner = $in_owner;
    }

    function getage() {
        return ($this->age * 365);
    }
    
    function getowner() {
        return ($this->owner);
    }
    
    function getname() {
        return ($this->name);
    }
}
$ourfirstdog = new dog("Rover",12,"Lisa and Graham");
//用serialize函数将这个实例转化为一个序列化的字符串
$dogdisc = serialize($ourfirstdog);
print $dogdisc; //$ourfirstdog 已经序列化为字符串 O:3:"dog":3:{s:4:"name";s:5:"Rover";s:3:"age";i:12;s:5:"owner";s:15:"Lisa and Graham";}

print '<BR>';

/* 
-----------------------------------------------------------------------------------------
    在这里你可以将字符串 $dogdisc 存储到任何地方如 session,cookie,数据库,php文件 
-----------------------------------------------------------------------------------------
*/

//我们在此注销这个类
unset($ourfirstdog);

/*    还原操作   */

/* 
-----------------------------------------------------------------------------------------
    在这里将字符串 $dogdisc 从你存储的地方读出来如 session,cookie,数据库,php文件 
-----------------------------------------------------------------------------------------
*/

//我们在这里用 unserialize() 还原已经序列化的对象
$pet = unserialize($dogdisc); //此时的 $pet 已经是前面的 $ourfirstdog 对象了
//获得年龄和名字属性
$old = $pet->getage();
$name = $pet->getname();
//这个类此时无需实例化可以继续使用,而且属性和值都是保持在序列化之前的状态
print "Our first dog is called $name and is $old days old<br>";
print '<BR>';
?>

转自http://www.cnblogs.com/yeer/archive/2009/03/25/1421161.html
分享到:
评论

相关推荐

    PHP序列化 规则

    【PHP序列化规则详解】 PHP序列化是一种将变量转换为可存储或传输的字符串的方法,主要涉及`serialize()`和`unserialize()`两个函数。自PHP 3.05版本起,这两个函数开始支持对象的序列化和反序列化。然而,PHP手册...

    C# 序列化为php序列化格式的类库 for C#

    标题提到的"C# 序列化为php序列化格式的类库 for C#"正是针对这样的需求,它提供了一种方法,使得C#开发者能够方便地将对象序列化成PHP可以理解的格式,从而实现C#与PHP之间的数据交换。 C# 是一种强类型、面向对象...

    PHP 序列化和反序列化

    在`demo`文件中,可能包含了一个关于如何使用PHP序列化和反序列化的示例代码。你可以查看这个文件来进一步了解这两个功能的实际应用。 总结来说,PHP的序列化和反序列化是处理和交换数据的关键工具,但同时也需要...

    028-精通PHP序列化与反序列化之_道_.pdf

    本文将深入探讨PHP序列化与反序列化的概念、方法以及在实际应用中的重要性,并详细介绍与反序列化相关的安全漏洞。 首先,序列化是一个将对象状态转换为可以存储或传输的形式的过程。在PHP中,序列化函数为...

    序列化一个类_php的类的序列化脚本_

    ### PHP序列化基础 PHP内置的`serialize()`函数是进行对象序列化的工具。当你调用`serialize()`时,它会返回一个表示对象状态的字符串。例如: ```php class MyClass { public $var1 = "Hello"; private $var2 =...

    详解PHP序列化和反序列化原理

    首先,要理解PHP序列化和反序列化的概念。序列化是PHP中将对象或变量的状态信息转换成可以存储或传输的形式的过程,反序列化则是将这些存储或传输后的信息还原成PHP中可以识别的对象或变量的过程。PHP通过serialize...

    64-64.渗透测试-PHP序列化与反序列化.mp4

    64-64.渗透测试-PHP序列化与反序列化.mp4

    php 序列化和反序列化学习-1

    在PHP中,序列化和反序列化是两个重要的概念,它们用于将数据对象转换为字符串以便存储或传输,以及将字符串还原为原始的数据结构。在本文中,我们将深入探讨这两个概念,以及它们在PHP中的应用。 首先,让我们了解...

    PHP序列化/对象注入漏洞分析

    PHP序列化/对象注入漏洞是一种安全威胁,它发生在应用程序中,当不安全地处理序列化数据时,攻击者可以操纵序列化的对象以执行恶意代码。本文深入探讨了这种漏洞的原理,以及如何利用它来获取远程shell。 首先,...

    phprpc.jar 包java 反序列化PHP工程demo

    这个工具包的核心功能是反序列化PHP序列化的字符串,允许Java程序理解和操作PHP生成的数据结构。在Java中,反序列化是将已保存或传输的序列化对象状态转换回对象的过程,这对于跨平台交互或持久化存储非常有用。 在...

    serializer:一个PHP序列化程序,该序列化程序生成PHP代码以实现最佳性能

    :)它支持什么该序列化程序可以在JSON和PHP对象之间进行转换。 它使用反射,Phpdoc和注释来生成用于转换PHP代码。 支持使用JMS序列化程序组和版本进行序列化,但不支持反序列化。局限性如果您使用自己的侦听器或类似...

    PHP中的序列化和反序列化

    在PHP中,序列化和反序列化是两种重要的数据处理技术,用于将变量转换为可存储或传输的格式,然后再恢复为原始数据结构。这两个函数,`serialize()`和`unserialize()`,是PHP内置的,用于在不同场景下处理数据。 `...

    java序列化对象传给php

    android(包括java)序列化一个对象传给php去做处理,或是接到php的序列化的对象在java中做处理的工具jar包以及使用方法. 使用方法: byte[] b = null; b = PHPSerializer.serialize(一个对象);//将一个对象序列化后返回...

    PHP序列化操作方法分析

    PHP序列化操作是PHP编程中一个重要的知识点,主要用于数据存储和传输。在深入了解PHP序列化操作之前,我们需要理解序列化的基本概念,了解其在实际编程中的应用场景和优势。 序列化,顾名思义,是将一个变量的数据...

    PHP 序列化和反序列化函数实例详解

    此外,PHP序列化后的数据仅限于PHP语言内部使用,通常情况下,序列化数据不应跨越不同程序语言环境使用。因为不同的语言环境对数据的序列化格式可能并不兼容,这可能会在跨语言环境下带来问题。 在实际应用中,我们...

    第38天:WEB漏洞-反序列化之PHP&JAVA全解(下)1

    标题中的“WEB漏洞-反序列化之PHP&JAVA全解(下)”指的是关于Web应用程序安全领域的一个重要话题,即PHP和JAVA平台上的反序列化漏洞。反序列化漏洞是由于程序在处理序列化数据时没有充分验证输入,从而允许攻击者构造...

    cpp-swooleserialize是目前php7中最快的序列化函数

    相较于传统的PHP序列化方法,`swoole_serialize`优化了内存管理和CPU计算,减少了不必要的内存拷贝,以及提高了序列化和反序列化的速度。这得益于其底层C/C++实现,能够更直接地操作内存,避免了PHP解释器的额外开销...

    Json反序列化

    反序列化是将JSON格式的字符串转换为程序可直接使用的对象的过程,这对于处理网络请求返回的数据至关重要。在本篇文章中,我们将深入探讨JSON反序列化的概念、原因以及在实际开发中的应用。 一、什么是JSON反序列化...

Global site tag (gtag.js) - Google Analytics