我对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的情况下获取文本?
答案 0 :(得分:1)
有各种可能的解决方案。
您可以对pages
属性使用reset() / current()来获取该数组中的第一个/当前项,或者您可以使用foreach
循环该属性并忽略键。您还可以使用pages
属性上的array_values()来获取强制顺序指示,或使用array_keys()获取页面ID列表并使用它们访问每个项目。 (还有其他方法)。
foreach
选项将是您最好的选择。
foreach($wiki_array['query']['pages'] as $page)
循环中的$ page将是您所追求的数组。
然后,您应该确保可以正确处理多个结果。