我有一个带有此值的字段的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>
答案 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";}}}