序列化PHP字符串的结构

我想知道是否有人可以指出我的资源,其中记录了序列化php字符串的详细信息。我基本上想知道格式/结构,因此我可以在VB.NET中编写一个函数以对其进行序列化/反序列化。

谢谢!

回答:

基本结构如下:

  1. 布尔值序列化为:
    b:<i>;

其中<i>是一个整数值,其值为0(false)或1(true)。

  1. 整数序列化为:
    i:<i>;

其中<i>是整数值。

  1. 浮点数被序列化为(d含义为double):
    d:<f>;

<f>浮点值在哪里。

  1. 字符串被序列化为:
    s:<i>:"<s>";

其中,<i>是表示的字符串长度的整数<s>,并且<s>是字符串值。

  1. null 简单地序列化为:
    N;

  1. 数组序列化为:
    a:<i>:{<elements>}

其中,<i>是表示数组中元素数量的整数,以及<elements>零个或多个序列化键值对:

    <key><value>

其中,<key>代表序列化的标量类型,以及<value>任何可序列化的值。

  1. 对象被序列化为:
    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

回到顶部