序列化PHP字符串的结构
我想知道是否有人可以指出我的资源,其中记录了序列化php字符串的详细信息。我基本上想知道格式/结构,因此我可以在VB.NET中编写一个函数以对其进行序列化/反序列化。
谢谢!
回答:
基本结构如下:
- 布尔值序列化为:
b:<i>;
其中<i>
是一个整数值,其值为0
(false)或1
(true)。
- 整数序列化为:
i:<i>;
其中<i>
是整数值。
- 浮点数被序列化为(
d
含义为double):d:<f>;
<f>
浮点值在哪里。
- 字符串被序列化为:
s:<i>:"<s>";
其中,<i>
是表示的字符串长度的整数<s>
,并且<s>
是字符串值。
null
简单地序列化为:N;
- 数组序列化为:
a:<i>:{<elements>}
其中,<i>
是表示数组中元素数量的整数,以及<elements>
零个或多个序列化键值对:
<key><value>
其中,<key>
代表序列化的标量类型,以及<value>
任何可序列化的值。
- 对象被序列化为:
O:<i>:"<s>":<i>:{<properties>}
其中第一个<i>
是代表的字符串长度的整数<s>
,并且<s>
是完全限定的类名(类名前面带有完整的命名空间)。第二个<i>
是代表对象属性数量的整数。<properties>
是零个或多个序列化名称值对:
<name><value>
其中<name>
是表示属性名称的序列化字符串,以及<value>
可序列化的任何值。
<name>
表示为
s:<i>:"<s>";
其中<i>
是表示字符串长度的整数<s>
。但是,<s>
每个属性的可见性值不同:
一个。具有 属性<s>
是属性的简单名称。
b。但是,对于
属性,<s>
该属性是该属性的简单名称,前面带有\0*\0
一个星号,并用两个NUL
字符(即chr(0)
)括起来。
C。带有 属性的<s>
是属性的简单名称,以\0<s>\0
-
开头,并用<s>
两个NUL
字符括起来,其中的<s>
是完全限定的类名。
还有一些其他情况,例如R:<i>;
,代表参考,在这里我没有提到(因为老实说我还没有弄清楚它的确切工作原理),但是这应该给您关于PHP的序列化机制的一个不错的主意。
。
以上是 序列化PHP字符串的结构 的全部内容, 来源链接: utcz.com/qa/416794.html