1

我使用 MediaWiki api 来获取 Wikipedia 一个 PHP 序列化的关于特定国家/地区的信息数组。

http://en.wikipedia.org/w/api.php?action=query&titles=Belgium&prop=revisions&rvprop=content&rvsection=0&format=php

我的问题

如何从该数组中获取特定字段?喜欢 fe:

  • 首都
  • 人口普查
  • 地图说明(地区、官方语言……)

我不熟悉这个输出......谢谢!

4

3 回答 3

1

该 api 并不意味着访问诸如capitalforbelgium或类似的属性。您将只获得 wikipage 作为wiki源代码以及一些额外的信息,如页面标题。例如,在您的示例中,wiki 页面可以包含有关编程语言、花卉、汽车或国家/地区的信息,它只是降价,没有特殊的数据字段。

响应格式是序列化的 php 数据。用于unserialize将其解析为数组,但不要期望获得有关以下内容的结构化信息belgium

$response = file_get_contents('http://en.wikipedia.org/w/api.php?action=query&titles=Belgium&prop=revisions&rvprop=content&rvsection=0&format=php');
$data = unserialize($response);
var_dump($data);
于 2013-09-25T13:47:10.710 回答
0

它看起来像序列化的 PHP,你可以unserialize()像其他人回答的那样。我建议改用以下JSON格式:

http://en.wikipedia.org/w/api.php?action=query&titles=Belgium&prop=revisions&rvprop=content&rvsection=0&format=json

然后,您可以使用json_decode()来解析 JSON 响应并将其转换为关联数组:

$json = file_get_contents($file);
$decoded = json_decode($json, TRUE);

foreach ($decoded as $key => $value) {
    // get the details you need
}
于 2013-09-25T13:45:46.743 回答
0

使用此功能unserialize()

$array = file_get_contents('http://en.wikipedia.org/w/api.php?action=query&titles=Belgium&prop=revisions&rvprop=content&rvsection=0&format=json');
$array = unserialize( $array );
print_r( $array ); 
于 2013-09-25T13:47:51.370 回答