将短的YouTube链接转换为完整的链接

5

大家好,我正在寻找一种简单的方法来检查字符串是否等于像这样的 URL:

http://youtu.be/WWQZ046NeUA

将其转换为像这样的正确的youtube链接:
http://www.youtube.com/watch?v=WWQZ046NeUA

如果不是放任不管,用PHP最简单的方法是什么?

3
您尝试过任何方法吗?我看到您标记了正则表达式,因此您知道可以使用它来验证URL。 - Danny
1
你试过谷歌搜索吗?我第一个找到的链接是解释如何将YouTube URL转换为YouTube.com的http://blog.absolutedisaster.co.uk/php-convert-youtube-urls-to-youtubecom/。 - Satya
2个回答

6
您可以使用以下的 preg_replace 函数调用:
$u = 'http://youtu.be/WWQZ046NeUA';
$r = preg_replace('~^https?://youtu\.be/([a-z\d]+)$~i', 'http://www.youtube.com/watch?v=$1', $u);

这不适用于YouTube链接中代码中包含“-”或“_”的情况。 - Andrew Lazarus
我们可以使用 ~^https?://youtu\.be/([\w-]+)$~i 来处理这种情况。 - anubhava

5

str_replace 应该非常有效。

$url = ''; //url you're checking
$ytshorturl = 'youtu.be/';
$ytlongurl = 'www.youtube.com/watch?v=';
if (strpos($url,$yturl) !== false) {
    $url = str_replace($ytshorturl, $ytlongurl, $url);
}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接