0

我正在尝试在我的网页上显示 youtube 视频

这是我的代码

    <embed width=\"240\" height=\"320\" 
    src=\"http://www.youtube.com/watch?v=Uqjg0xSGA1c&start=3&end=16\"
    type=\"application/x-shockwave-flash\">
    </embed>

上面的代码只显示白色背景。

类似的代码工作正常

    <embed width=\"240\" height=\"320\" 
   src=\"http://www.youtube.com/v/XGSy3_Czz8k\"
    type=\"application/x-shockwave-flash\">
  </embed>

注意不同的src

如何将一种形式转换为另一种形式。我正在使用 php 脚本。

还有其他方法可以在网页上播放 youtube 视频吗?

4

2 回答 2

1

使用 解析 URL parse_url()。检索并解析查询字符串以找出 的值,v然后使用它生成新的 URL。

http://php.net/manual/en/function.parse-url.php

$parsedurl = parse_url("http://www.youtube.com/watch?v=Uqjg0xSGA1c&start=3&end=16");
echo $parsedurl["query"]; // v=Uqjg0xSGA1c&start=3&end=16
$queryvars = explode("&", $parsedurl["query"]);
// Loop through each queryvar, split on "="
于 2013-10-08T09:07:12.273 回答
1

我一直在使用这个正则表达式(我知道这不是最好的解决方案)来获取视频 ID 有一段时间了,到目前为止没有任何问题。它适用于不同的 url 格式,不仅适用于查询字符串 url:

if(preg_match('%(?:youtube(?:-nocookie)?\.com/(?:[^/]+/.+/|(?:v|e(?:mbed)?)/|.*[?&]v=)|youtu\.be/)([^"&?/ ]{11})%i', $url, $matches)
{
  $videoId = $matches[1];
}

当您拥有视频 ID 时,您可以构建您想要的 url,甚至可以获取缩略图。

当然,如果您只针对查询字符串 url,则 parse_url() 更好,但如果您需要处理不同的格式(例如,使用用户提供的 CMS 的 url),则需要恢复为正则表达式

于 2013-10-08T09:16:36.373 回答