Foreach循环PHP错误

时间:2017-08-15 01:59:05

标签: php json xml

我想使用foreach循环“textDisplay”但是我不确定我的php代码的哪一部分是错误的并且它给了我“试图获取非对象的属性”错误

XML

<pre>
{
"kind": "youtube#commentThreadListResponse",
"etag": "\"m2yskBQFythfE4irbTIeOgYYfBU/o6YjewN3UppKqc9x-ZYYa5xYhA8\"",
"pageInfo": {
    "totalResults": 9,
    "resultsPerPage": 20
},
"items": [
    {
        "kind": "youtube#commentThread",
        "etag": "\"m2yskBQFythfE4irbTIeOgYYfBU/uE9QsmedbKmEauRAmmwW18vNQa8\"",
        "id": "z12qxfxr2onpy1b5l04cdfzrgwabir0q4bo",
        "snippet": {
            "videoId": "Au87oAJ2jeE",
            "topLevelComment": {
                "kind": "youtube#comment",
                "etag": "\"m2yskBQFythfE4irbTIeOgYYfBU/EUV0UwLw788gwYsvyDO2xMRjG8w\"",
                "id": "z12qxfxr2onpy1b5l04cdfzrgwabir0q4bo",
                "snippet": {
                    "authorDisplayName": "Randy Taschner",
                    "authorProfileImageUrl": "https://yt3.ggpht.com/--vE0X3_vDCs/AAAAAAAAAAI/AAAAAAAAAAA/P6kgycrPEZw/s28-c-k-no-mo-rj-c0xffffff/photo.jpg",
                    "authorChannelUrl": "http://www.youtube.com/channel/UCTRuBHRb4BRFcob-hMj6NnQ",
                    "authorChannelId": {"value": "UCTRuBHRb4BRFcob-hMj6NnQ"},
                    "videoId": "Au87oAJ2jeE",
                    "textDisplay": "Thank you Dan and Envato for creating this video!",
                    "textOriginal": "Thank you Dan and Envato for creating this video!",
                    "canRate": true,
                    "viewerRating": "none",
                    "likeCount": 1,
                    "publishedAt": "2015-08-16T05:02:25.000Z",
                    "updatedAt": "2015-08-16T05:02:25.000Z"
                }
            },
                "canReply": true,
                "totalReplyCount": 1,
                "isPublic": true
        }
    }
]

}     

我的PHP代码

$json = file_get_contents('https://www.googleapis.com/youtube/v3/commentThreads?part=snippet%2Creplies&videoId='.$videoid.'&key='.$apikey);
$ytdata = json_decode($json);
foreach($ytdata->items[0]->snippet->topLevelComment->snippet->textDisplay as $hit){
    echo $hit;
}

由于

1 个答案:

答案 0 :(得分:1)

$ytdata->items[0]->snippet->topLevelComment->snippet->textDisplay不是数组 - 它是一个字符串。

也许你打算循环这些项目?

foreach ($ytdata->items as $item) {
    echo $item->snippet->topLevelComment->snippet->textDisplay;
}