首页 > 解决方案 > 如何获取wiki pageid?

问题描述

我目前正在使用 PHP 制作一个可以在 wiki 上进行研究的聊天机器人,并自动发送介绍,这里是 wiki api json( https://zh.wikipedia.org/w/api.php?format=json&action=query&prop =extracts&exintro&explaintext&redirects=1&titles=search_title )

{"batchcomplete":"","query":{"redirects":[{"from":"search_title","to":"search_title"}],"pages":{"541":{"pageid":541,"ns":0,"title":"search_title","extract":"ablablablablablablablablablablabla。"}}}}

我想通过

$data=$jsondata['query']['pages']["541"]['extract'];

但似乎我需要先知道pageid是'541',有没有方法可以让我先知道padeid?

标签: phpjsonapimediawikimediawiki-api

解决方案


您应该寻找一种在不知道键的情况下迭代数组值的方法。我不是 PHP 开发人员,但我认为foreach可以:

foreach ($jsondata['query']['pages'] as $pageid => $pagedata) {
    extract = $pagedata['extract']
    ...
}

查询还有一个formatversion=2参数,除其他外,它将使

action=query 的 "pages" 是一个数组,而不是一个以页面 id 作为键的对象,可能难以迭代。


推荐阅读