Php 从维基百科API中提取数据

Php 从维基百科API中提取数据,php,json,api,wikipedia,Php,Json,Api,Wikipedia,我希望能够使用json从维基百科中提取标题和描述。所以维基百科不是我的问题,我是json新手,想知道如何使用它。现在我知道有数百个教程,但我已经工作了几个小时,它什么都没有显示,下面是我的代码: <?php $url="http://en.wikipedia.org/w/api.php?action=query&prop=extracts|info&exintro&titles=google&format=json&explaintext&

我希望能够使用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;
?>

只是为了更容易单击:


我知道我可能只是做错了一件小事,但它真的让我感到不安,代码。。。我习惯于使用xml,而且我几乎刚刚做出了改变,所以你能给我和未来的访问者解释一下吗,因为我很困惑。。。任何你需要的,我没有说,只是评论它,我相信我可以得到它,并感谢,提前

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

$pageid = $data->query->pageids[0];
您可能会收到以下警告:

 Array to string conversion 
完整代码:

    $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;

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

$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"
}
*/

试试这个,它将帮助您将“jsonfm”更改为“json”。它只是html表示链接中的jsonfm,而不是代码中的jsonfm。啊,是的,您是对的@Joel。我会改变的,谢谢。哦,我做了jsonfm使它更容易阅读,dohHelpfull,但我只需要它一次,+1的effortIt是你想从数组中检索的元素的索引。如果数组有3个元素
$demo=array('hi','my','friend')
,则
$demo[0]
将是
hi
$demo[2]
将是
friend
等。在您的情况下,您不希望检索所有数组,但只检索其中包含的元素。这就是您使用
[0]
的原因。感谢您的解释,所以它基本上是按顺序获取的。。。好的,谢谢