解析维基百科类别

时间:2012-11-20 01:03:58

标签: php json wikipedia

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

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

...其中“albert einstein”是任何维基百科页面

我遇到的问题是,我不确定如何解析没有对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);

1 个答案:

答案 0 :(得分:1)

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

foreach ($json->{'query'}->{'pages'} as $page) {
    print_r ($page->{'categories'});
}