PHP 对象的存储与传输(序列化 serialize 对象) 对象的存储与传输 在实际项目应用中,有些任务在一两个页面是无法完成的,由于变量到脚本执行完毕就释放,我们本页所生成的对象想在其它页面使用时便碰到了麻烦。 如果需要将对象及其方法传递到我们想使用对象的页面,比较简单可行的办法是将对象序列化后存储起来或直接传输给需要的页面,另一种办法是将对象注册为 session 变量。 序列化对象 对象序列化,就是将对象转换成可以存储的字节流。当我们需要把一个对象在网络中传输时或者要把对象写入文件或是数据库时,就需要将对象进行序列化。 序列化完整过程包括两个步骤:一个是序列化,就是把对象转化为二进制的字符串,serialize() 函数用于序列化一个对象;另一个是反序列化,就是把对象被序列转化的二进制字符串再转化为对象,unserialize() 函数来反序列化一个被序列化的对象。这样整个过程下来,对象内的类型结构及数据都是完整的。 语法: string serialize( mixed value ) mixed unserialize( string str [, string callback] ) 例子: <?php class Person { private $name; private $age; function __construct($name, $age) { $this->name = $name; $this->age = $age; } function say() { echo "我的名字叫:".$this->name."<br />"; echo " 我的年龄是:".$this->age; } } $p1 = new Person("张三", 20); $p1_string = serialize($p1); //将对象序列化后写入文件 $fh = fopen("p1.text", "w"); fwrite($fh, $p1_string); fclose($fh); ?> 打开 p1.text 文件,里面写入的内容如下: O:6:"Person":2:{s:12:" Person name";s:4:"张三";s:11:" Person age";i:20;} 但通常不去直接解析上述序列化生成的字符。 反序列化: <?php class Person { private $name; private $age; function __construct($name, $age) { $this->name = $name; $this->age = $age; } function say() { echo "我的名字叫:".$this->name."<br />"; echo " 我的年龄是:".$this->age; } } $p2 = unserialize(file_get_contents("p1.text")); $p2 -> say(); ?> 运行该例子,输出: 我的名字叫:张三 我的年龄是:20
发表评论
-
yii2 引进css
2015-12-09 16:22 0$this->registerCssFile(STATI ... -
GridView
2015-10-29 10:18 0<?= GridView::widget ... -
使用pack 填充空白符 unpack解
2015-08-10 15:43 569<?php $book = array(array ... -
php lookandsay
2015-08-07 18:01 478<?php function lookands ... -
php strpos 为什么没找到要用 ===false 做判断
2015-08-07 14:36 761如果这个字符串中没有找到相应的子字符串 就返回false ... -
php 获取当前浏览器信息
2015-08-07 11:05 04.10 以前 是$HTTP_SERVER_VARS ... -
php 遍历一个文件夹下面的子文件
2015-08-05 15:57 560function my_scandir($dir) ... -
什么是HMVC
2015-07-31 11:01 446HMVC模式即Hierarchical-Model-V ... -
PHP 通过代理发送电子邮件 mail()
2015-06-15 16:19 0/** * 邮件发送类 * 支持发送纯文本 ... -
unsoap
2015-06-03 16:30 01. 首先,去 http://sourceforge.net/ ... -
file_get_contents 和 curl 性能比较
2015-06-03 11:57 0$timeStart = microtime_float(); ... -
PHP获取 当前页面名称、主机名、URL完整地址、URL参数、获取IP
2015-05-29 14:07 0PHP获取 当前页面名称、 ... -
php MySQL Create Database 创建数据库
2014-10-15 16:04 830MySQL Create Database 创 ... -
php 连接数据库
2014-10-15 16:05 366MySQL 连接与管理 让 PHP 支持 MySQL ... -
PHP 对象克隆 clone 关键字与 __clone() 方法
2014-10-15 16:07 1181PHP 对象克隆 clone 关键字与 __clone ... -
PHP 抽象方法与抽象类 abstract 关键字
2014-10-15 16:07 531PHP 抽象方法与抽象类 abstract 关键字 ... -
PHP 重载方法 __call()
2014-10-21 16:20 389PHP 重载方法 __call() __call() ... -
PHP 重载
2014-10-23 11:07 341PHP 重载 一个类中的方法与另一个方法同名,但 ... -
PHP 特殊方法 __set()、__get()、__isset() 与 __unset()
2014-10-13 15:37 0PHP 特殊方法 __set() ... -
PHP 常量(const)
2014-10-13 15:32 0PHP 常量(const) 常量 const 在类 ...
相关推荐
总结起来,PHP序列化与反序列化是实现数据持久化、传输对象状态的强大工具,但同时也带来了安全风险。开发者需要理解它们的工作原理,合理使用,同时注意安全实践,避免出现安全漏洞。通过本文的学习,希望能帮助...
在PHP编程中,序列化是一种将对象转换为可存储或传输格式的过程,通常用于数据库存储、文件保存或者网络传输。这个过程将对象的状态(包括它的属性和方法)转化为字符串,以便于之后的反序列化,即恢复原始对象。在...
PHP序列化是一种将变量转换为可存储或传输的字符串的方法,主要涉及`serialize()`和`unserialize()`两个函数。自PHP 3.05版本起,这两个函数开始支持对象的序列化和反序列化。然而,PHP手册中并未详细解释序列化结果...
在PHP编程中,序列化和反序列化是两个非常重要的概念,它们主要用于数据存储和传输。下面我们将深入探讨这两个概念,以及如何在实际开发中应用它们。 **序列化(Serialization)** 序列化是将变量转换为字符串的...
在PHP开发中,数据序列化是一个经常使用到的功能,它允许开发者将数据结构或对象状态转换为可存储或传输的格式。PHP提供了两种序列化和反序列化的机制,即使用serialize()和unserialize()函数进行PHP特有的序列化与...
在IT领域,序列化是一个非常重要的概念,尤其是在数据存储、网络传输和对象持久化等方面。在PHP中,`serialize()`函数就是用来将变量转化为字符串,这样就可以方便地存储或者通过网络发送。在这个“se_mouz_image....
在PHP中,序列化和反序列化是两种重要的数据处理技术,用于将变量转换为可存储或传输的格式,然后再恢复为原始数据结构。这两个函数,`serialize()`和`unserialize()`,是PHP内置的,用于在不同场景下处理数据。 `...
- 反序列化(Deserialization)则是将之前存储或传输的序列化格式的字节流恢复为对象的过程。 接下来详细解析golang实现php里的serialize()和unserialize()序列和反序列方法: ### 序列化 在PHP中,serialize()...
在PHP开发中,序列化和反序列化是常见的数据处理操作,它们允许我们将变量的状态转换为字符串以便存储或传输,然后在需要时恢复为原始结构。`swoole_serialize`是一个专门为PHP7设计的高性能序列化库,尤其在C/C++...
在进行数据持久化或网络传输时,数据序列化是一种常见的技术手段,它可以将程序中的对象或数据结构转换成字符串形式,以便存储或在网络中传输。在PHP中,经常使用的序列化方式包括了PHP原生的serialize以及更为通用...
序列化是PHP中将对象或变量的状态信息转换成可以存储或传输的形式的过程,反序列化则是将这些存储或传输后的信息还原成PHP中可以识别的对象或变量的过程。PHP通过serialize()和unserialize()两个函数来实现序列化和...
在PHP中,序列化和反序列化是两个重要的概念,它们用于将数据对象转换为字符串以便存储或传输,以及将字符串还原为原始的数据结构。在本文中,我们将深入探讨这两个概念,以及它们在PHP中的应用。 首先,让我们了解...
在PHP中,序列化是将变量转换为可存储或传输的字符串的过程,而反序列化则是将该字符串恢复为原始变量。PHP提供了两种主要的序列化方法:`serialize()` 和 `unserialize()` 以及 `json_encode()` 和 `json_decode()`...
- 序列化:将对象转换为可以传输或存储的格式,如XML字符串,以便于在网络上传输或者保存到磁盘。 - 反序列化:将已序列化的数据恢复为原来的对象状态,以便重新使用或操作。 2. 序列化的过程: - 根据对象的...
在Web开发中,数据交换和存储常常涉及到对象的序列化和反序列化。PHP提供了多种方式来处理这一过程,其中最常用的两种格式是JSON(JavaScript Object Notation)和XML(eXtensible Markup Language)。这两种格式都...