0
我目前使用我的功能getYoutubeId
來提取youtube視頻ID。該功能通常解析該鏈接以找到其相應的ID。但是我無法爲輸入文本框分配一個php變量,然後將url
傳遞給該函數並最終提取該ID。在將url粘貼到文本框中時,視頻ID或Nothing都會被回顯。這裏有一個例子:Mockup SITE解析URL以提取ID
<input type="text" name="youtube" value="<? $sYoutubeUrl ?>">
<input type="submit" value="Parsen">
<?
function getYoutubeId($sYoutubeUrl) {
# set to zero
$youtube_id = "";
$sYoutubeUrl = trim($sYoutubeUrl);
# the User entered only the eleven chars long id, Case 1
if(strlen($sYoutubeUrl) === 11) {
$youtube_id = $sYoutubeUrl;
return $sYoutubeUrl;
}
# the User entered a Url
else {
# try to get all Cases
if (preg_match('~(?:youtube\.com/(?:user/.+/|(?:v|e(?:mbed)?)/|.*[?&]v=)|youtu\.be/)([^"&?/ ]{11})~i', $sYoutubeUrl, $match)) {
$youtube_id = $match[1];
return $youtube_id;
}
# try to get some other channel codes, and fallback extractor
elseif(preg_match('~http://www.youtube.com/v/([A-Za-z0-9\-_]+).+?|embed\/([0-9A-Za-z-_]{11})|watch\?v\=([0-9A-Za-z-_]{11})|#.*/([0-9A-Za-z-_]{11})~si', $sYoutubeUrl, $match)) {
for ($i=1; $i<=4; $i++) {
if (strlen($match[$i])==11) {
$youtube_id = $match[$i];
break;
}
}
return $youtube_id;
}
else {
$youtube_id = "No valid YoutubeId extracted";
return $youtube_id;
}
}
}
echo (getYoutubeId($sYoutubeUrl));
?>
你在哪裏調用函數(getYoutubeId($ sYoutubeUrl))? – 2013-02-09 20:19:07
@Akam yea我用'(getYoutubeId($ sYoutubeUrl))'更新了我的代碼'在結尾處調用 – CodingWonders90 2013-02-09 20:22:47
並非所有YouTube視頻在URL中的'v'參數中都有一個ID? – 2013-02-09 20:26:21