我不知道从哪里开始。我已添加了YouTube页面并显示了YouTube页面。
我可以将YouTube链接插入我的MySQL。我的脚本仅在我使用此部分时才起作用:
https://www.youtube.com/watch?v=[XXXXXXXXXXX]
我想插入YouTube的整个视频链接。
因为我使用了YouTube的嵌入源,如果我插入YouTube链接脚本需要只显示视频ID,但整个链接仍然显示在MySQL中
<iframe width="560" height="315" src="//www.youtube.com/embed/'.$nbbb["youtube"].'" frameborder="0" allowfullscreen></iframe>
答案 0 :(得分:0)
您可以使用正则表达式。
这适用于所有类型的YouTube网址:
/**
* get youtube video ID from URL
*
* @param string $url
* @return string Youtube video id or FALSE if none found.
*/
function youtube_id_from_url($url) {
$pattern =
'%^# Match any youtube URL
(?:https?://)? # Optional scheme. Either http or https
(?:www\.)? # Optional www subdomain
(?: # Group host alternatives
youtu\.be/ # Either youtu.be,
| youtube\.com # or youtube.com
(?: # Group path alternatives
/embed/ # Either /embed/
| /v/ # or /v/
| /watch\?v= # or /watch\?v=
) # End path alternatives.
) # End host alternatives.
([\w-]{10,12}) # Allow 10-12 for 11 char youtube id.
$%x'
;
$result = preg_match($pattern, $url, $matches);
if (false !== $result) {
return $matches[1];
}
return false;
}
echo youtube_id_from_url('https://www.youtube.com/watch?v=XXXXXXXXXXX'); # XXXXXXXXXXX
答案 1 :(得分:0)
我认为我理解的是你在www.v =之后输入数据库的URL的XXXXXXX部分。
执行此操作首先,您要查找?v=
$YouTubeURL = 'https://www.youtube.com/watch?v=XXXXXXXXXXX';
$pos = strpos($YouTubeURL);
$pos + 3 //Add 3 to account for ?v=
下一步切割它
$answer = substr($YouTubeURL, $pos);
这应该是yoru回答或至少引导你。如果将其存储在数据库中,它将在当前脚本中正确显示。 (如果这是你想要做的。)
答案 2 :(得分:0)
你可以使用简单的子串函数
$fullurl = fromdatabase//whatever that is your full url.
$videoid=substr($fullurl,-11);
echo"<iframe......" . $videoid . ".....";
这适用于最后11位数字作为YouTube视频ID的所有字符串。
干杯