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

对此有多种可能的解决方案。

您可以在其上使用 reset() / current() against the pages property to get the first / current item in that array, or you could loop around that property with a foreach and ignore the keys. You could also use array_values() on the pages property to get force sequential indicies, or use array_keys() 来获取页面 ID 列表并使用它们来访问每个项目。 (还有其他方法)。

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

foreach($wiki_array['query']['pages'] as $page)

$page 循环内将是您之后的数组。

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