插入YouTube链接并仅显示ID

时间:2014-04-04 15:25:17

标签: php mysql youtube

我不知道从哪里开始。我已添加了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>

3 个答案:

答案 0 :(得分:0)

您可以使用正则表达式。

这适用于所有类型的YouTube网址:

  • 子域或没有子域
  • youtu.be urls
  • https&amp; HTTP
  • / v / links
/**
 * 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部分。

在PHP中,您可以使用strpossubstr

执行此操作

首先,您要查找?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的所有字符串。

干杯