php序列化函数数组与对象的方法
转自:http://www.xfcodes.com/php/shili/1730.htm
php格式化字符串并转换成数组或对象的好方法,即序列化处理。
有两种序列化变量的方法。
以下示例,使用 serialize() 和 unserialize() 函数:
// a complex array
$myvar = array(
'hello',
42,
array(1,'two'),
'apple'
);
// convert to a string
$string = serialize($myvar);
echo $string;
/* prints
a:4:{i:0;s:5:"hello";i:1;i:42;i:2;a:2:{i:0;i:1;i:1;s:3:"two";}i:3;s:5:"apple";}
*/
// you can reproduce the original variable
$newvar = unserialize($string);
print_r($newvar);
/* prints
Array
(
[0] => hello
[1] => 42
[2] => Array
(
[0] => 1
[1] => two
)
[3] => apple
)
*/
这是原生的 PHP 序列化方法。
然而,由于 JSON 近年来大受欢迎,PHP5.2 中已经加入了对 JSON 格式的支持。
现在你可以使用 json_encode() 和 json_decode() 函数:
// a complex array
$myvar = array(
'hello',
42,
array(1,'two'),
'apple'
); // www.xfcodes.com
// convert to a string
$string = json_encode($myvar);
echo $string;
/* prints
["hello",42,[1,"two"],"apple"]
*/
// you can reproduce the original variable
$newvar = json_decode($string);
print_r($newvar);
/* prints
Array
(
[0] => hello
[1] => 42
[2] => Array
(
[0] => 1
[1] => two
)
[3] => apple
)
*/
这将更为行之有效,尤其与 JavaScript 等许多其他语言兼容。
注意:对于复杂的对象,某些信息可能会丢失。
相关推荐
反序列化后的数据可以进一步处理,例如遍历数组或对象,修改其内容,或者将其与其他数据结构合并。在处理敏感数据时,注意安全问题,避免因反序列化漏洞引发的安全风险。 总之,JSON在PHP中的反序列化是一个常见的...
PHP序列化是一种将变量转换为可存储或传输的字符串的方法,主要涉及`serialize()`和`unserialize()`两个函数。自PHP 3.05版本起,这两个函数开始支持对象的序列化和反序列化。然而,PHP手册中并未详细解释序列化结果...
### PHP序列化基础 PHP内置的`serialize()`函数是进行对象序列化的工具。当你调用`serialize()`时,它会返回一个表示对象状态的字符串。例如: ```php class MyClass { public $var1 = "Hello"; private $var2 =...
二、PHP 反序列化函数 PHP 提供了两个用于序列化和反序列化的函数:`serialize()` 和 `unserialize()`。`serialize()` 函数将 PHP 对象或数组转换为字符串,而 `unserialize()` 函数将字符串转换回 PHP 对象或数组...
在`demo`文件中,可能包含了一个关于如何使用PHP序列化和反序列化的示例代码。你可以查看这个文件来进一步了解这两个功能的实际应用。 总结来说,PHP的序列化和反序列化是处理和交换数据的关键工具,但同时也需要...
此外,对于对象的序列化,PHP会在反序列化时调用对象的`__wakeup()`魔术方法,以便对象可以恢复其可能在序列化过程中丢失的状态,如重新建立数据库连接等。 总结来说,PHP的序列化和反序列化是数据持久化和交换的...
本文将深入探讨如何使用递归方法在PHP中实现数组与对象之间的转换。 首先,我们要理解数组和对象的基本概念。在PHP中,数组是一种可变长度的数据结构,可以存储多个值,并通过索引来访问这些值。而对象则是一种复杂...
接着,我们使用`unserialize()`函数对已序列化的字符串进行反序列化,将它恢复为原始的数组形式。这个过程是相反的,`unserialize()`读取字符串`$info`,解析其中的类型标识符和数据,然后创建出与原始数组相同的...
总结来说,使用jQuery向后台发送数组对象涉及JSON序列化、$.ajax调用以及后台的JSON解析。理解这些步骤对于实现客户端和服务器之间的数据交换至关重要。在实际项目中,根据具体需求和所选的技术栈,可能还需要考虑...
在实际项目中,我们还可能需要用到序列化和反序列化数组。`serialize()`和`unserialize()`函数可以将数组转换为字符串保存,或者将字符串恢复为原数组,这对于数据存储和传输非常有用。 最后,当不再需要数组时,别...
检测是否序列化后的字符串 模仿JAVASCRIPT的ESCAPE和UNESCAPE函数的功能 用curl函数读取远程文件 用file_getcontents提交数据 用php生成扭曲,有角度的验证图片(支持中文) 用正则加亮关键字 程序运行过程中...
为了方便使用,可以编写自定义的序列化函数 my_serialize() 和反序列化函数 my_unserialize()。自定义函数结合了base64编码和gzip压缩的优势,能够有效防止乱码问题的同时减少数据大小。 例子: ```php // 自定义...
在学习PHP的过程中,还应关注其他与数组和对象相关的函数,如`array_push()`、`array_pop()`、`array_merge()`、`var_dump()`等,以便更好地管理和操作数据。同时,深入学习面向对象编程的概念和实践,有助于提升...
PHP序列化程序该库正在进行中。 在使用phpunit之前测试任何构建。 用于快速操作大型序列化字符串的库, PHPSerializer 旨在提高的效率在 PHP 中,如果您有一个序列化数组,并且希望向该数组添加一个项目,则需要执行...
总结来说,PHP序列化和反序列化原理涉及对象状态的持久化存储和迁移,但需要注意自描述功能的实现、性能问题以及安全性问题。通过理解这些知识点,开发人员可以更加合理地在PHP应用中使用序列化机制,保证数据处理的...
需要注意的是,由于排序后的数组会失去原有的键名关联,如果需要保持键名与元素值的对应关系,应该使用asort()函数。 在实际应用中,sort()函数可以应用于多种场景,例如对数字、字符串、对象等进行排序。它也适用...
在PHP中,序列化和反序列化是两个重要的概念,它们用于将数据对象转换为字符串以便存储或传输,以及将字符串还原为原始的数据结构。在本文中,我们将深入探讨这两个概念,以及它们在PHP中的应用。 首先,让我们了解...
而range()函数用于创建一个包含指定范围的元素的数组,这个函数非常适合于创建有序列表,比如数字序列或者字母序列。 array_fill()函数则可以创建一个填充了指定值的新数组。这个函数接受三个参数:填充的起始索引...