我想扩展一个从YouTube返回嵌入代码的php包。我想扩展它并使用start time querystring创建嵌入代码。
一段代码:
'website' => 'http://youtube.com',
'ssl' => true,
'url' => [
'^(https?://)?(?:www\.)?youtu\.be/([0-9a-zA-Z-_]{11})',
'^(https?://)?(?:www\.)?(?:youtu\.be/|youtube\.com/(?:embed/|v\/|watch\?v=|watch\?.+&v=))((\w|-){11})(?:.+&t=)(\S+)',
],
'info' => [
'id' => '{1}',
'url' => '{protocol}://youtu.be/{1}',
'dataUrl' => '{protocol}://gdata.youtube.com/feeds/api/videos/{1}?v=2&alt=jsonc',
'imageRoot' => '{protocol}://img.youtube.com/vi/{1}/',
],
'render' => [
// iframe attributes
'sizeRatio' => 1.77,
'iframe' => [
'src' => '{protocol}://www.youtube.com/embed/{1}?rel=0&wmode=transparent&start={3}',
'width' => 560,
'height' => 315,
'allowfullscreen' => null,
'frameborder' => 0,
],
{3}是YouTube的开始时间,格式为1h22m59s或22m59s或59s。我从最后一组获得正则表达式{3} :(?:。+& t =)(\ S +)',
是否可以直接在数组值中运行函数,以秒为单位转换{3}时间?对于嵌入视频我需要& start = 123(不是?start = 1h22m59s)
答案 0 :(得分:1)
我通过编辑包源来解决它。这是最好的解决方案。