PHP致命错误:在非对象上调用成员函数getAttribute()

时间:2015-01-13 02:57:30

标签: php api youtube

如果您能帮助我找到我的代码有什么问题,我真的很感激.. 我试图从特定的YouTube频道中检索数据。 我试图检索的数据是:总观看次数,订阅者和缩略图网址。

代码正确显示了总观看次数和订阅者,但缩略图代码无效。 我得到"致命错误:在非对象上调用成员函数getAttribute()"

非常感谢您的时间和帮助,谢谢。

 <?php
function GroupViews($username) {
 $xdoc = new DomDocument;
 $xdoc->Load('http://gdata.youtube.com/feeds/api/users/ArrolladoraLimonVEVO');
 $ytStatistics = $xdoc->getElementsByTagName('statistics')->item(0);
 $totalYouTubeViews = $ytStatistics->getAttribute('totalUploadViews');
return number_format($totalYouTubeViews);
}
?>
<?php echo GroupViews(0); ?>


<?php   
    function GetytSubscribers($username) {
    $xdoc = new DomDocument;
    $xdoc->Load('http://gdata.youtube.com/feeds/api/users/'.$username.'');
    $ytStatistics = $xdoc->getElementsByTagName('statistics')->item(0);
    $totalYouTubeSubscribers = $ytStatistics->getAttribute('subscriberCount');
    return number_format($totalYouTubeSubscribers);
}
?>


<?php echo GetytSubscribers('ArrolladoraLimonVEVO'); ?>





<?php   
    function GetytThumbnail($username) {
    $xdoc = new DomDocument;
    $xdoc->Load('http://gdata.youtube.com/feeds/api/users/'.$username.'');
    $ytThumbnail = $xdoc->getElementsByTagName('media$thumbnail')->item(0);
    $thumbnail = $ytThumbnail->getAttribute('url');
    return number_format($thumbnail);
}
?>


<?php echo GetytThumbnail('ArrolladoraLimonVEVO'); ?>

1 个答案:

答案 0 :(得分:1)

使用该URL中的XML似乎更棘手。你为什么不使用JSON格式?只需在您的gdata.youtube网址上添加“?alt = json”即可。这是您的一个功能

的示例
function GetytThumbnail($username) {
    $url = 'http://gdata.youtube.com/feeds/api/users/'.$username.'?alt=json';
    $json = file_get_contents($url);
    $obj = json_decode($json,true);
    return $obj['entry']['media$thumbnail']['url'];
}

您只需要更改其他功能的return语句。希望它有用:)