Php 从WikipediaAPI检索数组元素
我和这个问题的作者有着完全相同的问题:但是那里的答案对我不起作用 API请求:Php 从WikipediaAPI检索数组元素,php,arrays,wikipedia-api,Php,Arrays,Wikipedia Api,我和这个问题的作者有着完全相同的问题:但是那里的答案对我不起作用 API请求: $searchQuery = str_replace(" ","+",$value); $url = 'https://en.wikipedia.org/w/api.php?action=query&prop=extracts|info&exintro&titles=' . $searchQuery . '&format=json&explaintext&redirec
$searchQuery = str_replace(" ","+",$value);
$url = 'https://en.wikipedia.org/w/api.php?action=query&prop=extracts|info&exintro&titles=' . $searchQuery . '&format=json&explaintext&redirects&inprop=url';
$scrape = file_get_contents($url);
方法1:
$data = json_decode($scrape, true);
$pageid = $data->query->pages[0];
echo $data->query->pages->$pageid->canonicalurl;
显示:
Notice: Trying to get property of non-object
Notice: Undefined offset: 0
方法2:
$data = json_decode($scrape, true);
$pageid = $data['query']['pages'][0];
echo $data['query']['pages'][$pageid]['canonicalurl'];
显示:
Notice: Trying to get property of non-object
Notice: Undefined offset: 0
当我将$pageid的值更改为3395,这是我试图检索数据的页面id时,一切都像预期的那样工作,因此我只在检索页面id时遇到问题
编辑:
打印$r数据返回:
您可以使用获取数组的第一个元素
$data = json_decode($scrape, true);
$page = reset($data['query']['pages']);
echo $page['canonicalurl'];