0

我一直试图从 youtube url 中提取 youtube id,最后我从另一个线程中找到了这段代码。

<?

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


?>

当我写的时候,id会打印echo $matches[1];出来

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

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

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

4

1 回答 1

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

演示!

于 2013-10-28T16:42:41.350 回答