Youtube将json中的数组项显示为NULL

时间:2013-06-27 20:01:37

标签: php json youtube-api

我正在抓取视频中的评论,但是“作者姓名”和他们的ID都是NULL。

这就是我所拥有的。

$feedUrl='http://gdata.youtube.com/feeds/api/videos/'.$selected_video_id.'/comments?v=2&alt=json';  
$data = json_decode(file_get_contents($feedUrl),true);
$info = $data["feed"];
$entry = $info["entry"];
$nEntry = count($entry);

for($i=0;$i<$nEntry;$i++){ 
    $name =  $entry[$i]['author']['name']['$t'];
    $userId = $entry[$i]['author']['yt$userId']['$t'];
    $content = $entry[$i]['content']['$t'];
    $published_2 = $entry[$i]['published']['$t'];
}

收集内容和发布,但名称和用户ID不是。

在youtube数据api演示测试版中,Feed确实包含了其中的元素。如果您在浏览器中执行提要请求,它会显示所有内容。

http://gdata.youtube.com/feeds/api/videos/VIDEO_ID/comments

我错过了什么?

1 个答案:

答案 0 :(得分:1)

应该是:

$name =  $entry[$i]['author'][0]['name']['$t'];
$userId = $entry[$i]['author'][0]['yt$userId']['$t'];
$content = $entry[$i]['content']['$t'];
$published_2 = $entry[$i]['published']['$t'];

或者更好:

$feedUrl=file_get_contents('http://gdata.youtube.com/feeds/api/videos/ASO_zypdnsQ/comments?v=2&alt=json'); 
$json = json_decode($feedUrl, true);
foreach($json['feed']['entry'] as $entry) {
    echo $entry['author'][0]['name']['$t']."<br>";
    echo $entry['author'][0]['yt$userId']['$t']."<br>";
    echo $entry['content']['$t']."<br>";
    echo $entry['published']['$t']."<br>";
}

您可以像上面那样使用foreach:)