从Wikipedia API中提取数据

Con*_*nor 5 php api json wikipedia

我希望能够使用json从维基百科中提取标题和描述.所以...维基百科不是我的问题,我是json的新手,想知道如何使用它.现在我知道有数百个教程,但我已经工作了几个小时,它只是没有显示任何东西,继承我的代码:

<?php
  $url="http://en.wikipedia.org/w/api.php?action=query&prop=extracts|info&exintro&titles=google&format=json&explaintext&redirects&inprop=url";

    $json = file_get_contents($url);
    $data = json_decode($json, TRUE);

    $pageid = $data->query->pageids;
    echo $data->query->pages->$pageid->title;
?>
Run Code Online (Sandbox Code Playgroud)

这样更容易点击:

我知道我可能只是做了一件小事,但它确实让我烦恼,代码......我习惯使用xml,而且我几乎只是做了开关,所以你能解释一下吗对于我和未来的访客,因为我很困惑...你需要的任何我没有说过的,只是评论它,我相信我能得到它,并提前谢谢!

Alv*_*aro 7

$pageid正在返回一个包含一个元素的数组.如果你只想获得第一个,你应该这样做:

$pageid = $data->query->pageids[0];
Run Code Online (Sandbox Code Playgroud)

您可能收到此警告:

 Array to string conversion 
Run Code Online (Sandbox Code Playgroud)

完整代码:

    $url = 'http://en.wikipedia.org/w/api.php?action=query&prop=extracts|info&exintro&titles=google&format=json&explaintext&redirects&inprop=url&indexpageids';

    $json = file_get_contents($url);
    $data = json_decode($json);

    $pageid = $data->query->pageids[0];
    echo $data->query->pages->$pageid->title;
Run Code Online (Sandbox Code Playgroud)


Joe*_*inz 5

我会这样做的.它支持在同一个调用中有多个页面.

$url = "http://en.wikipedia.org/w/api.php?action=query&prop=extracts|info&exintro&titles=google&format=json&explaintext&redirects&inprop=url";

$json = file_get_contents($url);
$data = json_decode($json, TRUE);

$titles = array();
foreach ($data['query']['pages'] as $page) {
    $titles[] = $page['title'];
}
var_dump($titles);
/* var_dump returns
array(1) {
  [0]=>
  string(6) "Google"
}
*/
Run Code Online (Sandbox Code Playgroud)