Youtube直接在regex组的数组中嵌入开始时间转换为秒的时间

时间:2016-11-08 00:51:28

标签: php youtube

我想扩展一个从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)

1 个答案:

答案 0 :(得分:1)

我通过编辑包源来解决它。这是最好的解决方案。