2011-05-12 113 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