2013-10-28 32 views
0

我一直試圖從youtube url中提取youtube id很長一段時間,最後我從另一個線程中找到了這段代碼。來自數據庫行的Youtube ID

<? 

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


?> 

,當我寫echo $matches[1];因爲它應該

問題是我希望找到我的數據庫從$row[link]的鏈接,當我與echo "$row[link]";更換網址,卻沒有這個id將打印工作。它只適用於YouTube的網址?

和IM 100%,因爲在腳本的其他地方使用它的IM $row[link]和鏈接正在打印

我的問題是如何使它打印的YouTube ID爲我的數據庫中的每一行?

回答

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 

Demo!

+0

它的工作原理與URL http://www.youtube。 com/watch?v = 0mVck88W01I 但它的劑量工作當我想要它打印出我的網址從我的mysql數據庫使用$ row [link] – Frederik