0

我正在尝试使用以下 URL 解析维基百科类别:

http://en.wikipedia.org/w/api.php?action=query&format=json&cllimit=max&prop=categories&titles=Albert%20Einstein

...其中“阿尔伯特·爱因斯坦”是任何维基百科页面

我遇到的问题是我不确定如何在不对 pageid 进行硬编码的情况下进行解析,pageid 是可变的(在本例中为“736” - 仅适用于该页面)。

注意:我今天刚开始学习 JSON,所以这可能很容易。

$page = $_GET['page'];
$page = str_replace('_',' ',$page);

$url = 'http://en.wikipedia.org/w/api.php?
action=query&format=json&cllimit=max&prop=categories&titles='.$page;

echo $url;

$ch = curl_init($url);
curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt ($ch, CURLOPT_USERAGENT, "TestScript");

$c = curl_exec($ch);
$json = json_decode($c);

$content = $json->{'query'}->{'pages'}->{'736'}->{'categories'};

print_r ($content);
4

1 回答 1

1

人们会假设至少在理论上可以有多个页面,那么为什么不呢:

foreach ($json->{'query'}->{'pages'} as $page) {
    print_r ($page->{'categories'});
}
于 2012-11-20T19:15:00.537 回答