来自数据库行的Youtube id

时间:2013-10-28 16:39:36

标签: php regex youtube

我一直试图从youtube网址中提取youtube id很长一段时间,最后我从另一个帖子中找到了这段代码。

<?

    preg_match(
        '/[\\?\\&]v=([^\\?\\&]+)/',
        'http://www.youtube.com/watch?v=0mVck88W01I',
        $matches
    );


?>

并且当我写echo $matches[1];时应该打印id

问题是我希望它在我的数据库中找到$row[link]的链接,当我用echo "$row[link]";替换网址时,它不起作用。它只适用于youtube网址?

和我100%$row[link]因为我在脚本的其他部分使用它并且正在打印链接

我的问题是如何让它为我的数据库中的每一行打印youtube id?

1 个答案:

答案 0 :(得分:0)

你不需要正则表达式。这可以使用parse_url()

轻松完成
function getVideoID($url) {
    $parts = parse_url($url);
    list(,$id) = explode('=', $parts['query']);
    return $id;
}

用法:

$link = 'http://www.youtube.com/watch?v=0mVck88W01I';
echo getVideoID($link);

输出:

0mVck88W01I

Demo!