从 wordpress 数据库中提取数据 - 未知格式
Pull data from wordpress database - unknown format
我需要帮助从数据结构格式未知的字段中提取数据。我正在使用 wordpress 测验插件,我想从其后端提取数据 table。
answer_data中存储的数据是:
a:4:{
i:0;O:27:"WpProQuiz_Model_AnswerTypes":7:{s:10:"*_answer";s:17:"Kieran Trippier ";s:8:"*_html";b:0;s:10:"*_points";i:1;s:11:"*_correct";b:0;s:14:"*_sortString";s:0:"";s:18:"*_sortStringHtml";b:0;s:10:"*_mapper";N;}
i:1;O:27:"WpProQuiz_Model_AnswerTypes":7:{s:10:"*_answer";s:11:"Hugo Lloris";s:8:"*_html";b:0;s:10:"*_points";i:1;s:11:"*_correct";b:0;s:14:"*_sortString";s:0:"";s:18:"*_sortStringHtml";b:0;s:10:"*_mapper";N;}
i:2;O:27:"WpProQuiz_Model_AnswerTypes":7:{s:10:"*_answer";s:14:"Moussa Dembele";s:8:"*_html";b:0;s:10:"*_points";i:1;s:11:"*_correct";b:0;s:14:"*_sortString";s:0:"";s:18:"*_sortStringHtml";b:0;s:10:"*_mapper";N;}
i:3;O:27:"WpProQuiz_Model_AnswerTypes":7:{s:10:"*_answer";s:14:"Jan Vertonghen";s:8:"*_html";b:0;s:10:"*_points";i:1;s:11:"*_correct";b:1;s:14:"*_sortString";s:0:"";s:18:"*_sortStringHtml";b:0;s:10:"*_mapper";N;}
}
在查看 table 的结构时,answer_data 的数据类型是长文本,但旁边有 utf8_general_ci。我不知道这是什么意思。
我想从这些数据中提取、测验答案 i.e.Kieran Trippier、Hugo Lloris、Moussa Dembele 和 Jan Vertonghen。
非常感谢任何帮助或提示。
编辑 1:
Array (
[0] => WpProQuiz_Model_AnswerTypes Object ( [_answer:protected] => Kieran Trippier [_html:protected] => [_points:protected] => 1 [_correct:protected] => [_sortString:protected] => [_sortStringHtml:protected] => [_mapper:protected] => )
[1] => WpProQuiz_Model_AnswerTypes Object ( [_answer:protected] => Hugo Lloris [_html:protected] => [_points:protected] => 1 [_correct:protected] => [_sortString:protected] => [_sortStringHtml:protected] => [_mapper:protected] => )
[2] => WpProQuiz_Model_AnswerTypes Object ( [_answer:protected] => Moussa Dembele [_html:protected] => [_points:protected] => 1 [_correct:protected] => [_sortString:protected] => [_sortStringHtml:protected] => [_mapper:protected] => )
[3] => WpProQuiz_Model_AnswerTypes Object ( [_answer:protected] => Jan Vertonghen [_html:protected] => [_points:protected] => 1 [_correct:protected] => 1 [_sortString:protected] => [_sortStringHtml:protected] => [_mapper:protected] => ) )
如何从此数组中获取值?
这是某种形式的序列化。它似乎是一个包含4个元素的数组a
,每个元素都是进一步的结构。插件理解;你可能不需要理解它。
utf8_general_ci
是用于比较 LONGTEXT
字符串的 "Collation"。它表示 CHARACTER SET utf8
,它是 UTF-8
(又名 MySQL 的 utf8mb4
)的 3 字节子集。这使您可以包含世界上大多数语言的字符。
人们希望插件提供一种剖析此结构的方法,而不是让您猜测。此外,插件可能会更改结构,恕不另行通知。
提示如下:参见 PHP 的 serialize()
和 unserialize()
。
使用反序列化结果:
$foo
好像是 'objects' of class
WpProQuiz_Model_AnswerTypes
的数组。该对象的 'properties' 之一似乎是 $_answer
。那么,看看这是否为您提供了答案列表:
foreach($foo as $obj) {
echo $obj->_answer, "\n";
}
或者,将答案抓取到一个数组中 $answers
:
$answers = array();
foreach($foo as $obj) {
$answers[] = $obj->_answer;
}
我需要帮助从数据结构格式未知的字段中提取数据。我正在使用 wordpress 测验插件,我想从其后端提取数据 table。 answer_data中存储的数据是:
a:4:{
i:0;O:27:"WpProQuiz_Model_AnswerTypes":7:{s:10:"*_answer";s:17:"Kieran Trippier ";s:8:"*_html";b:0;s:10:"*_points";i:1;s:11:"*_correct";b:0;s:14:"*_sortString";s:0:"";s:18:"*_sortStringHtml";b:0;s:10:"*_mapper";N;}
i:1;O:27:"WpProQuiz_Model_AnswerTypes":7:{s:10:"*_answer";s:11:"Hugo Lloris";s:8:"*_html";b:0;s:10:"*_points";i:1;s:11:"*_correct";b:0;s:14:"*_sortString";s:0:"";s:18:"*_sortStringHtml";b:0;s:10:"*_mapper";N;}
i:2;O:27:"WpProQuiz_Model_AnswerTypes":7:{s:10:"*_answer";s:14:"Moussa Dembele";s:8:"*_html";b:0;s:10:"*_points";i:1;s:11:"*_correct";b:0;s:14:"*_sortString";s:0:"";s:18:"*_sortStringHtml";b:0;s:10:"*_mapper";N;}
i:3;O:27:"WpProQuiz_Model_AnswerTypes":7:{s:10:"*_answer";s:14:"Jan Vertonghen";s:8:"*_html";b:0;s:10:"*_points";i:1;s:11:"*_correct";b:1;s:14:"*_sortString";s:0:"";s:18:"*_sortStringHtml";b:0;s:10:"*_mapper";N;}
}
在查看 table 的结构时,answer_data 的数据类型是长文本,但旁边有 utf8_general_ci。我不知道这是什么意思。 我想从这些数据中提取、测验答案 i.e.Kieran Trippier、Hugo Lloris、Moussa Dembele 和 Jan Vertonghen。 非常感谢任何帮助或提示。
编辑 1:
Array (
[0] => WpProQuiz_Model_AnswerTypes Object ( [_answer:protected] => Kieran Trippier [_html:protected] => [_points:protected] => 1 [_correct:protected] => [_sortString:protected] => [_sortStringHtml:protected] => [_mapper:protected] => )
[1] => WpProQuiz_Model_AnswerTypes Object ( [_answer:protected] => Hugo Lloris [_html:protected] => [_points:protected] => 1 [_correct:protected] => [_sortString:protected] => [_sortStringHtml:protected] => [_mapper:protected] => )
[2] => WpProQuiz_Model_AnswerTypes Object ( [_answer:protected] => Moussa Dembele [_html:protected] => [_points:protected] => 1 [_correct:protected] => [_sortString:protected] => [_sortStringHtml:protected] => [_mapper:protected] => )
[3] => WpProQuiz_Model_AnswerTypes Object ( [_answer:protected] => Jan Vertonghen [_html:protected] => [_points:protected] => 1 [_correct:protected] => 1 [_sortString:protected] => [_sortStringHtml:protected] => [_mapper:protected] => ) )
如何从此数组中获取值?
这是某种形式的序列化。它似乎是一个包含4个元素的数组a
,每个元素都是进一步的结构。插件理解;你可能不需要理解它。
utf8_general_ci
是用于比较 LONGTEXT
字符串的 "Collation"。它表示 CHARACTER SET utf8
,它是 UTF-8
(又名 MySQL 的 utf8mb4
)的 3 字节子集。这使您可以包含世界上大多数语言的字符。
人们希望插件提供一种剖析此结构的方法,而不是让您猜测。此外,插件可能会更改结构,恕不另行通知。
提示如下:参见 PHP 的 serialize()
和 unserialize()
。
使用反序列化结果:
$foo
好像是 'objects' of class
WpProQuiz_Model_AnswerTypes
的数组。该对象的 'properties' 之一似乎是 $_answer
。那么,看看这是否为您提供了答案列表:
foreach($foo as $obj) {
echo $obj->_answer, "\n";
}
或者,将答案抓取到一个数组中 $answers
:
$answers = array();
foreach($foo as $obj) {
$answers[] = $obj->_answer;
}