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


PHP: How to retrieve extract text from Wiki 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&支持= extracts&格式= json& exintro =,匈牙利冠军=

// 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的情况下获得文本?

有各种可能的解决方案。

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

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

foreach($wiki_array['query']['pages'] as $page)
循环中的

$page将是您要寻找的数组。

你应该确保你可以正确处理多个结果