0

I want to loop the "textDisplay" using foreach but im not sure which part of my php code is wrong and it gives me a "Trying to get property of non-object " error

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
        }
    }
]

}

MY PHP CODE

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

Thanks

1 Answer 1

1

$ytdata->items[0]->snippet->topLevelComment->snippet->textDisplay is not an array - it's a string.

Perhaps you meant to loop the items?

foreach ($ytdata->items as $item) {
    echo $item->snippet->topLevelComment->snippet->textDisplay;
}
Sign up to request clarification or add additional context in comments.

1 Comment

Thanks @Scopey :)

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.