我一直试图从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?
答案 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