从 PHP 中的 json 中获取项目


Get item from json in PHP

如何在PHP中从下面的json中获取"duration"值:

{
 "kind": "youtube#videoListResponse",
 "etag": "'"6jI4SSPcXxEAc3i_1EQHOPi0Cvc/EGNSBh81ISlkeECbqD9xdh5C340'"",
 "pageInfo": {
  "totalResults": 1,
  "resultsPerPage": 1
 },
 "items": [
  {
   "kind": "youtube#video",
   "etag": "'"6jI4SSPcXxEAc3i_1EQHOPi0Cvc/yUebIRJfQ62Pq5XpRbqJHx7Xozo'"",
   "id": "7lCDEYXw3mM",
   "contentDetails": {
    "duration": "PT15M51S",
    "dimension": "2d",
    "definition": "hd",
    "caption": "true",
    "licensedContent": false,
    "contentRating": {
     "ytRating": ""
    }
   }
  }
 ]
}

尝试了很多示例,但会导致对象错误或索引错误无效?

$jsonObj  = json_decode($json);
$duration = $jsonObj->items[0]->contentDetails->duration;

$jsonArr  = json_decode($json, true);
$duration = $jsonArr['items'][0]['contentDetails']['duration'];

或循环:

$jsonArr  = json_decode($json, true);
foreach ($jsonArr['items'] as $item) {
    echo $item['contentDetails']['duration'];
}
$json = <<<JSON
{
 "kind": "youtube#videoListResponse",
 "etag": "'"6jI4SSPcXxEAc3i_1EQHOPi0Cvc/EGNSBh81ISlkeECbqD9xdh5C340'"",
 "pageInfo": {
  "totalResults": 1,
  "resultsPerPage": 1
 },
 "items": [
  {
   "kind": "youtube#video",
   "etag": "'"6jI4SSPcXxEAc3i_1EQHOPi0Cvc/yUebIRJfQ62Pq5XpRbqJHx7Xozo'"",
   "id": "7lCDEYXw3mM",
   "contentDetails": {
    "duration": "PT15M51S",
    "dimension": "2d",
    "definition": "hd",
    "caption": "true",
    "licensedContent": false,
    "contentRating": {
     "ytRating": ""
    }
   }
  }
 ]
}
JSON;
$data = json_decode($json);
foreach ($data['items'] as $item) {
    echo $item['contentDetails']['duration'];
}

试试这个

在URL视频ID是视频的ID,请记住更改它

<?php
$url=file_get_contents("https://gdata.youtube.com/feeds/api/videos/videoid?v=2");
$data = json_decode($url);
$duration = $data['items']['duration'];
echo $duration;
?>