我对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将是您要寻找的数组。
你应该确保你可以正确处理多个结果