从 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;
}