2011-05-12 61 views
1

我有一个包含YouTube视频地址的字符串,我想用它在弹出式灯箱中显示视频。在目前形式的链接不会在灯箱工作:从字符串中提取特定信息

http://www.youtube.com/v/CD2LRROpph0?f=videos&c=TEST&app=youtube_gdata&version=3 

我有一个想法,以提取视频ID“CD2LRROpph0”,只是追加一条正规的YouTube网址,例如

http://www.youtube.com/watch?v=CD2LRROpph0. 

我知道哪些在灯箱中有效。

有关如何从字符串中提取此代码的任何想法?

回答

0
$newUrl = preg_replace('@http://www.youtube.com/v/([a-z0-9_\-]{11}).*[email protected]', 
    'http://www.youtube.com/watch?v=$1', $string); 
1

这人会处理不同协议和不同的YouTube网址(如果YouTube上推出了特定国家的顶级域名,例如)。

$urlTokens = parse_url($url); 

$newUrl = $urlTokens['scheme'] . '://' . $urlTokens['host'] . '/watch?v=' . preg_replace('~^/v/~', '', $urlTokens['path']); 

CodePad