Youtube播放列表所有视频持续时间显示在PHP中

use*_*407 -2 php youtube

我想通过此链接等于youtube播放列表所有视频时间http://gdata.youtube.com/feeds/api/playlists/PLCK7NnIZXn7gGU5wDy9iKOK6T2fwtGL6l.这里有这样的时间代码time='00:05:11.500'..我想从php得到所有视频时间然后从php这样的节目

show it like this : 2:10:50 (2=hours,10=minutes,50=seconds)
Run Code Online (Sandbox Code Playgroud)

我想从像php这样的变量.plzz帮助这篇文章谢谢.我试着这样做..但我能做到这一点..如果有人可以帮助我..如果有4个视频,想要等于所有视频时间然后想要显示所有持续时间只有PHP

Ram*_*nte 6

好的,这是一个解决问题的答案,假设您没有任何代码,并且无意尝试自己进行实验.

您可能无法将其用于除描述的确切问题之外的任何其他内容:将此Feed的所有持续时间加在一起并将其显示为小时:分钟:秒

<?php

$total_seconds = 0;

$dom = new DOMDocument();
$dom->loadXML(file_get_contents('http://gdata.youtube.com/feeds/api/playlists/PLCK7NnIZXn7gGU5wDy9iKOK6T2fwtGL6l'));

$xpath = new DOMXPath($dom);
foreach ($xpath->query('//yt:duration/@seconds') as $duration) {
    $total_seconds += (int) $duration->value;
}
Run Code Online (Sandbox Code Playgroud)

然后以格式显示$ total_seconds.这有两个选择:

假设小时数永远不会超过24小时

echo gmdate("H:i:s", $total_seconds);
Run Code Online (Sandbox Code Playgroud)

允许总时间超过24小时

echo (int) ($total_seconds / 3600) . ':' . (int) ($total_seconds / 60) % 60 . ':' . $total_seconds % 60;
Run Code Online (Sandbox Code Playgroud)

请记住:此代码完全执行ZERO错误检查.可能出错的事情:

  • PHP配置可能不允许http 流包装器
  • PHP构建可能没有启用Dom
  • XML Feed可能不可用
  • XML Feed可能不包含任何条目