这个数据是什么类型的结构?

时间:2015-04-23 06:55:15

标签: html mysql wordpress forms

我有一个带有此值的字段的mysql表:

a:18:{
i:0;
a:7:{
        i:0;
        i:10;
        i:1;
        s:5:"Email";
        i:2;
        s:10:"user_email";
        i:3;
        s:4:"text";
        i:4;
        s:1:"y";
        i:5;
        s:1:"y";
        i:6;
        s:1:"y";
    }
i:1;
a:7:{
        i:0;
        i:1;
        i:1;
        s:10:"First Name";
        i:2;
        s:10:"first_name";
        i:3;
        s:4:"text";
        i:4;
        s:1:"y";
        i:5;
        s:1:"y";
        i:6;
        s:1:"y";
    }
i:2;
a:7:{
        i:0;
        i:2;
        i:1;
        s:9:"Last Name";
        i:2;
        s:9:"last_name";
        i:3;
        s:4:"text";
        i:4;
        s:1:"y";
        i:5;
        s:1:"y";
        i:6;
        s:1:"y";
    }
i:3;
a:7:{
        i:0;
        i:4;
        i:1;
        s:9:"Address 2";
        i:2;
        s:5:"addr2";
        i:3;
        s:4:"text";
        i:4;
        s:1:"n";
        i:5;
        s:1:"n";
        i:6;
        s:1:"n";
    }
i:4;
a:7:{
        i:0;
        i:5;
        i:1;
        s:4:"City";
        i:2;
        s:4:"city";
        i:3;
        s:4:"text";
        i:4;
        s:1:"n";
        i:5;
        s:1:"n";
        i:6;
        s:1:"n";
    }
i:5;
a:7:{
        i:0;
        i:6;
        i:1;
        s:5:"State";
        i:2;
        s:8:"thestate";
        i:3;
        s:4:"text";
        i:4;
        s:1:"n";
        i:5;
        s:1:"n";
        i:6;
        s:1:"n";
    }
i:6;
a:7:{
        i:0;
        i:7;
        i:1;
        s:3:"Zip";
        i:2;
        s:3:"zip";
        i:3;
        s:4:"text";
        i:4;
        s:1:"n";
        i:5;
        s:1:"n";
        i:6;
        s:1:"n";
    }
i:7;
a:7:{
        i:0;
        i:9;
        i:1;
        s:9:"Day Phone";
        i:2;
        s:6:"phone1";
        i:3;
        s:4:"text";
        i:4;
        s:1:"y";
        i:5;
        s:1:"y";
        i:6;
        s:1:"n";
    }
i:8;
a:7:{
        i:0;
        i:9;
        i:1;
        s:9:"Alt Phone";
        i:2;
        s:6:"phone2";
        i:3;
        s:4:"text";
        i:4;
        s:1:"y";
        i:5;
        s:1:"y";
        i:6;
        s:1:"n";
    }
i:9;
a:9:{
        i:0;
        i:9;
        i:1;
        s:9:"GENDER";
        i:2;
        s:6:"gender";
        i:3;
        s:4:"select";
        i:4;
        s:1:"y";
        i:5;
        s:1:"y";
        i:6;
        s:1:"n";
        i:7;
        s:4:"male";
        i:8;
        s:5:"female";
    }
i:10;
a:7:{
        i:0;
        i:11;
        i:1;
        s:13:"Confirm Email";
        i:2;
        s:13:"confirm_email";
        i:3;
        s:4:"text";
        i:4;
        s:1:"n";
        i:5;
        s:1:"n";
        i:6;
        s:1:"n";
    }
i:11;
a:7:{
        i:0;
        i:3;
        i:1;
        s:9:"Address 1";
        i:2;
        s:5:"addr1";
        i:3;
        s:4:"text";
        i:4;
        s:1:"n";
        i:5;
        s:1:"n";
        i:6;
        s:1:"n";
    }
i:12;
a:7:{
        i:0;
        i:8;
        i:1;
        s:7:"Country";
        i:2;
        s:7:"country";
        i:3;
        s:4:"text";
        i:4;
        s:1:"n";
        i:5;
        s:1:"n";
        i:6;
        s:1:"n";
    }
i:13;
a:7:{
        i:0;
        i:14;
        i:1;
        s:8:"Password";
        i:2;
        s:8:"password";
        i:3;
        s:8:"password";
        i:4;
        s:1:"n";
        i:5;
        s:1:"n";
        i:6;
        s:1:"n";
    }
i:14;
a:7:{
        i:0;
        i:15;
        i:1;
        s:16:"Confirm Password";
        i:2;
        s:16:"confirm_password";
        i:3;
        s:8:"password";
        i:4;
        s:1:"n";
        i:5;
        s:1:"n";
        i:6;
        s:1:"n";
    }
i:15;
a:9:{
        i:0;
        i:16;
        i:1;
        s:3:"TOS";
        i:2;
        s:3:"tos";
        i:3;
        s:8:"checkbox";
        i:4;
        s:1:"n";
        i:5;
        s:1:"n";
        i:6;
        s:1:"n";
        i:7;
        s:5:"agree";
        i:8;
        s:1:"n";
    }
i:16;
a:7:{
        i:0;
        i:12;
        i:1;
        s:7:"Website";
        i:2;
        s:8:"user_url";
        i:3;
        s:4:"text";
        i:4;
        s:1:"n";
        i:5;
        s:1:"n";
        i:6;
        s:1:"y";
    }
i:17;
a:7:{
        i:0;
        i:13;
        i:1;
        s:17:"Biographical Info";
        i:2;
        s:11:"description";
        i:3;
        s:8:"textarea";
        i:4;
        s:1:"n";
        i:5;
        s:1:"n";
        i:6;
        s:1:"y";
    }
}

我以前在其他数据库中多次看过这个,但我不确定这是什么类型的数据类型/字段?原因我问,因为我试图在那里输入make元素输入类型“选择”但似乎无法搞清楚。有人知道吗?

据我了解,上面的数据是表单输入元素的序列化,如文本框,复选框等。

那么他们如何序列化选择输入框?例如:

<select>
  <option value='1'>1</option>
  <option value='2'>2</option>
</select>

1 个答案:

答案 0 :(得分:5)

它的serialized数据,最有可能是php函数serialize()

http://php.net/manual/en/function.serialize.php

  

说明

     

string serialize(mixed $ value)生成可存储的表示   价值观。

     

这对于存储或传递PHP值而不会丢失非常有用   他们的类型和结构。

     

要将序列化字符串再次转换为PHP值,请使用   反序列化()。

示例:

<?php
  $obj = new stdclass;
  $obj->prop1 = 1;
  $obj->prop2 = "two";
  $arr = array(0, 1, 2, array("key" => "value", "another key" => "another value"), $obj);
  print serialize($arr);
?>

将输出:
a:5:{i:0;i:0;i:1;i:1;i:2;i:2;i:3;a:2:{s:3:"key";s:5:"value";s:11:"another key";s:13:"another value";}i:4;O:8:"stdClass":2:{s:5:"prop1";i:1;s:5:"prop2";s:3:"two";}}

要解释一下你的片段,请:

a:18:{
i:0;
a:7:{
        i:0;
        i:10;
        i:1;
        s:5:"Email";
        i:2;
        s:10:"user_email";
        i:3;
        s:4:"text";
        i:4;
        s:1:"y";
        i:5;
        s:1:"y";
        i:6;
        s:1:"y";
    }

它说数据是一个包含18个元素a:18的数组,索引0 i:0的元素是一个包含7个元素a:7的数组,索引为0的元素该数组i:0是一个整数,其值为10 i:10,索引1 i:1的元素是一个长度为5 s:5的字符串,其值为email 。等等。

只有序列化数据中第一个元素的var_dump给出:

array(1) {
  [0]=>
  array(7) {
    [0]=>
    int(10)
    [1]=>
    string(5) "Email"
    [2]=>
    string(10) "user_email"
    [3]=>
    string(4) "text"
    [4]=>
    string(1) "y"
    [5]=>
    string(1) "y"
    [6]=>
    string(1) "y"
  }
}

要序列化您的特定代码段 - 好吧,有几种方法可以做到这一点,我没有一个wordpress方便来验证它,但一种方法只是在PHP中代表它如下:

$input = array('type' => 'select');
$opts = array(array('value' => 1, 'text' => '1'), array('value' => 2, 'text' => '2'));
$input['options'] = $opts;
$serialized = serialize($input);

会给你一个看起来像的字符串 a:2:{s:4:"type";s:6:"select";s:7:"options";a:2:{i:0;a:2:{s:5:"value";i:1;s:4:"text";s:1:"1";}i:1;a:2:{s:5:"value";i:2;s:4:"text";s:1:"2";}}}