PHP:如何从Wiki API检索提取文本

时间:2016-10-13 21:52:47

标签: php api wikipedia-api

我对Wiki做了以下调用,以检索有关地点的信息,用户通过名为“location”的输入搜索

// get wiki info about search term
$wiki_url = 'https://en.wikipedia.org/w/api.php?action=query&prop=extracts&format=json&exintro=&titles=' . urlencode($_GET['location']);

示例:https://en.wikipedia.org/w/api.php?action=query&prop=extracts&format=json&exintro=&titles=hungary

// get result of Wiki Search
$wiki_json = file_get_contents($wiki_url);


// decode data to use in php
$wiki_array = json_decode($wiki_json, true);

我试图以与其他API相同的方式获取文本,但它不起作用,因为我似乎需要pageId来访问文本所在的数组。

有没有办法绕过这个并在不知道pageID的情况下获取文本?

1 个答案:

答案 0 :(得分:1)

有各种可能的解决方案。

您可以对pages属性使用reset() / current()来获取该数组中的第一个/当前项,或者您可以使用foreach循环该属性并忽略键。您还可以使用pages属性上的array_values()来获取强制顺序指示,或使用array_keys()获取页面ID列表并使用它们访问每个项目。 (还有其他方法)。

foreach选项将是您最好的选择。

foreach($wiki_array['query']['pages'] as $page)
循环中的$ page将是您所追求的数组。

然后,您应该确保可以正确处理多个结果。