serialize的用法?

发布时间:2024-08-10 11:38:50 来源:君肯网

序列化 类似 json 功能,比如有个 数组$a 100个元素 ,需要存储起来 供别的进程使用,就可以$b=serialize($a)并将$b写入文件ff.txt, 其他进程 需要取的时候 就 $a=unserialize( file_get_contents( ff.txt) ) ,$a 就是原来那100个元素的数组,这个对 对象一样可用

请教使用jQuery中serialize函数

具我所知:

serialize 是jquery ajax里面的一个方法吧。

serialize() 方法通过序列化表单值,创建 URL 编码文本字符串。

您可以选择一个或多个表单元素(比如 input 及/或 文本框),或者 form 元素本身。

序列化的值可在生成 AJAX 请求时用于 URL 查询字符串中

简单分析PHP中序列化用法介绍

一、详细说明

1、.serialize() 方法创建以标准 URL 编码表示的文本字符串。它的操作对象是代表表单元素集合的 jQuery 对象。

2、.serialize() 方法可以操作已选取个别表单元素的 jQuery 对象,比如 &ltinput&gt, &lttextarea&gt以及 &ltselect&gt。不过,选择 &ltform&gt标签本身进行序列化一般更容易些

3、只会将”成功的控件“序列化为字符串。如果不使用按钮来提交表单,则不对提交按钮的值序列化。如果要表单元素的值包含到序列字符串中,元素必须使用 name 属性。

4、form里面的name不能够用 Js、jquery里的关键字。

PHP序列化数据存储在数据库中使用json还是serialize好

简单分析PHP中序列化用法介绍

序列化在我们学习php中都会有用到了对于序列化我们常用的函数有serialize和unserialize了,希望以下这篇文章能够帮助到各位了解到PHP中序列化用法,具体如下:

0x00 序列化函数

serialize():返回带有变量类型和值的字符串

unserialize():想要将已序列化的字符串变回 PHP 的值

测试代码:

&lt?php

class test{

var $a

var $b

function __construct($a,$b,$c){

$a = $a

$this-&gtb = $b

}

}

class test1 extends test{

function __construct($a){

$this-&gta = $a

}

}

$a = ’hello’

$b = 123

$c = false

$d = new test(’helloa’,’hellob’,’helloc’)

$e = new test1(’hello’)

var_dump(serialize($a))

var_dump(serialize($b))

var_dump(serialize($c))

var_dump(serialize($d))

var_dump(serialize($e))

?&gt

运行结果:

string ’s:5:”hello”’ (length=12)

string ’i:123’ (length=6)

string ’b:0’ (length=4)

string ’O:4:”test”:2:{s:1:”a”Ns:1:”b”s:6:”hellob”}’ (length=46)

string ’O:5:”test1”:2:{s:1:”a”s:5:”hello”s:1:”b”N}’ (length=46)

序列化字符串格式: 变量类型:变量长度:变量内容 。

如果序列化的是一个对象,序列化字符串格式为:

变量类型:类名长度:类名:属性数量:{属性类型:属性名长度:属性名;属性值类型:属性值长度:属性值内容}

将上述结果反序列化输出,执行结果:

string ’hello’ (length=5)

int 123

boolean false

object(test)[1]

public ’a’ =&gtnull

public ’b’ =&gtstring ’hellob’ (length=6)

object(test1)[1]

public ’a’ =&gtstring ’hello’ (length=5)

public ’b’ =&gtnull

0x01 对象序列化

当序列化对象时,PHP 将在序列动作之前调用该对象的成员函数 sleep()。这样就允许对象在被序列化之前做任何清除操作。类似的,当使用 unserialize() 恢复对象时, 将调用 wakeup()成员函数。

在serialize()函数执行时,会先检查类中是否定义了 sleep()函数,如果存在,则首先调用 sleep()函数,如果不存在,就保留序列字符串中的所有属性。

在unserialize()函数执行时,会先检查是否定义了 wakeup()函数。如果 wakeup()存在,将执行__wakeup()函数,会使变量被重新赋值。

serialize()测试代码:

&lt?php

class test{

var $a

var $b

function __construct($a,$b,$c){

$this-&gta = $a

serialize的用法?

$this-&gtb = $b

}

function __sleep(){

echo ”b has changed”.”\n”

$this-&gtb = ’hib’

return $this-&gtb

}

function __wakeup(){

echo ”a has changed”.”\n”

$this-&gta = ’hia’

}

}

class test1 extends test{

function __construct($a){

$this-&gta = $a

}

}

$d = new test(’helloa’,’hellob’,’helloc’)

$e = new test1(’hello’)

serialize($d)

serialize($e)

var_dump($d)

var_dump($e)

?&gt

执行结果:

b has changed b has changed

object(test)[1]

public ’a’ =&gtstring ’helloa’ (length=6)

public ’b’ =&gtstring ’hib’ (length=3)

object(test1)[2]

public ’a’ =&gtstring ’hello’ (length=5)

public ’b’ =&gtstring ’hib’ (length=3)

unserialize()测试代码:

class test{

var $a

var $b

function __construct($a,$b,$c){

$this-&gta = $a

$this-&gtb = $b

}

function __sleep(){

echo ”b has changed”.”\n”

$this-&gtb = ’hib’

return $this-&gtb

}

function __wakeup(){

echo ”a has changed”.”\n”

$this-&gta = ’hia’

}

}

class test1 extends test{

function __construct($a){

$this-&gta = $a

}

}

$d = ’O:4:”test”:2:{s:1:”a”Ns:1:”b”s:6:”hellob”}’

1) 空间的比较

serialize在编码后大概是json的1.5倍。

原因:

serialize后字符串包含了子串的长度,这可能是速度方面的优化,但是测试结果不尽人意。

serialize有更加详细的类型区分,而json只有四种类型,并且是以简单的符号表示。

2)速度的比较

在较小数据的情况下, serialize比json快数量级。

在大数据量的情况下,json比serialize稍微差一点

3)处理对象

json无法处理对象方法等数据。

4)使用范围

在前后端交互一般都使用JSON,另外,目前JSON只支持UTF-8编码的数据。

序列化使用serialize,特别是对象的存储。这是其存在的意义。

与对象无关的数据存储可以使用json,如包含大量数字的数组等。

这篇博客概括满全面:http://blog.csdn.net/hguisu/article/details/7651730

以上就是关于serialize的用法?全部的内容,如果了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

更多相关资讯

序列化 类似 json 功能,比如有个 数组$a 100个元素 ,需要存储起来 供别的进程使用,就可以$b=serialize($a)并将$…
查看详情
序列化 类似 json 功能,比如有个 数组$a 100个元素 ,需要存储起来 供别的进程使用,就可以$b=serialize($a)并将$…
查看详情
序列化 类似 json 功能,比如有个 数组$a 100个元素 ,需要存储起来 供别的进程使用,就可以$b=serialize($a)并将$…
查看详情
相关文章
推荐游戏
风之谷
风之谷
游戏资讯 10.5M
下载
斗罗大陆3
斗罗大陆3
游戏资讯 566.9M
下载
冠军网球
冠军网球
游戏资讯 148.1M
下载
最佳炮手
最佳炮手
游戏资讯 68.1M
下载
如梦下弦月
如梦下弦月
游戏资讯 840.1M
下载
富甲封神传
富甲封神传
游戏资讯 263.0M
下载