在PHP中从json获取项
如何在PHP中从以下json获取“duration”值:在PHP中从json获取项,php,json,Php,Json,如何在PHP中从以下json获取“duration”值: { "kind": "youtube#videoListResponse", "etag": "\"6jI4SSPcXxEAc3i_1EQHOPi0Cvc/EGNSBh81ISlkeECbqD9xdh5C340\"", "pageInfo": { "totalResults": 1, "resultsPerPage": 1 }, "items": [ { "kind": "youtube#video",
{
"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);
foreach ($jsonArr['items'] as $item) {
echo $item['contentDetails']['duration'];
}
或
或在循环中:
$jsonArr = json_decode($json, true);
foreach ($jsonArr['items'] as $item) {
echo $item['contentDetails']['duration'];
}
$json=$json=试试这个
这里的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;
?>
试试这个
这里的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;
?>
显示PHP对象,而不是原始JSON。一旦JSON解码,你可以说['items']['contentDetails']['duration']
请发布你尝试过的内容…显示PHP对象,而不是原始JSON。一旦JSON解码,你可以说['items']['contentDetails']['duration']
请发布你尝试过的内容…测试了第一个,它就工作了,谢谢:)。你知道如何将解析后的“ISO 8601”持续时间转换为秒吗?看看这个问题:-)谢谢,这就成功了:$interval=new DateInterval($duration)$t秒=($interval->format('%h')*60)*60)+($interval->format('%i')*60)+$interval->format('%s');echo$t秒代码>测试了第一个,它工作正常,谢谢:)。你知道如何将解析后的“ISO 8601”持续时间转换为秒吗?看看这个问题:-)谢谢,这就成功了:$interval=new DateInterval($duration)$t秒=($interval->format('%h')*60)*60)+($interval->format('%i')*60)+$interval->format('%s');echo$t秒代码>