你可以使用這樣的事情來獲得Youtube鏈接的ID:
$your_url='http://www.youtube.com/watch?var1=blabla#v=GvJehZx3eQ1$var2=bla';
function get_youtube_id_from_url($url){
if (stristr($url,'youtu.be/'))
{ preg_match('/(https:|http:|)(\/\/www\.|\/\/|)(.*?)\/(.{11})/i', $url, $final_ID); return $final_ID[4]; }
else
{ preg_match('/(https:|http:|):(\/\/www\.|\/\/|)(.*?)\/(embed\/|watch\?v=|(.*?)&v=|v\/|e\/|.+\/|watch.*v=|)([a-z_A-Z0-9]{11})/i', $url, $IDD); return $IDD[6]; }
}
echo get_youtube_id_from_url($your_url);
輸出:
GvJehZx3eQ1
而且這樣的事情來獲得來自YouTube的鏈接embed
標籤:
$sLink = "<embed src=\"www.youtube.com/v/whTwjG4ZIJg?version=3&hl=en_US\"></embed>";
preg_match('/< *embed[^>]*src *= *["\']?([^"\']*)/i', $sLink,$aMatch);
echo $aMatch[1];
輸出:
www.youtube.com/v/whTwjG4ZIJg?version=3&hl=en_US
你將不得不使用你的邏輯一點點,使這兩個功能一起工作:)但是,這是一個很好的起點!
請注意,如果您將表達式用雙引號引起來,"
將需要用\
進行轉義。
P.S:從某處得到第一個函數,只是不記得在哪裏。
編輯
您也可以使用Javascript
此:
var re = /(\?v=|\/\d\/|\/embed\/|\/v\/|\.be\/)([a-zA-Z0-9\-\_]+)/;
var urlArr = [
"http://www.youtube.com/watch?v=0zM3nApSvMg&feature=feedrec_grec_index",
"http://www.youtube.com/user/IngridMichaelsonVEVO#p/a/u/1/QdK8U-VIH_o",
];
for (var i = 0; i < urlArr.length; i++) {
alert(urlArr[i].match(re)[2]);
}
的jsfiddle: http://jsfiddle.net/A7LYZ/