<?php
preg_match(
'/[\\?\\&]v=([^\\?\\&]+)/',
'http://www.youtube.com/watch?v=OzHvVoUGTOM&feature=channel',
$matches
);
// $matches[1] should contain the youtube id
?>
只需对Alec Smart 's answer: since AS2 is deprecated now, the '?version = 3'进行一次小更新即可让他的示例正常工作 . 请参阅YouTube Embedded Players and Player Parameters的"Selecting content to play"下的Youtube参考细节 .
13 回答
您必须要求用户存储YouTube视频中的11个字符代码 .
对于例如http://www.youtube.com/watch?v=Ahg6qcgoay4
十一个字符代码是:Ahg6qcgoay4
然后,您将此代码放在数据库中 . 然后,无论您想将youtube视频放在页面中的哪个位置,都要从数据库中加载角色并输入以下代码: -
例如对于Ahg6qcgoay4,它将是:
不要将嵌入代码存储在数据库中--YouTube可能会不时更改嵌入代码和URL参数 . 例如,
<object>
嵌入代码已经退役,而使用的是<iframe>
嵌入代码 . 您应该从URL / embed代码中解析出视频ID(使用正则表达式,URL解析函数或HTML解析器)并存储它 . 然后使用YouTube API当前提供的任何机制显示它 .用于提取视频ID的简单PHP示例如下:
我建议您查看这些文章以了解如何处理这些ID:
要创建自己的YouTube视频播放器:
YouTube Embedded Player Parameters
YouTube JavaScript Player API Reference
从长短管理网址中你可以通过这种方式获得嵌入:
希望它可以帮助某人
根据HTML Youtube Videos不推荐使用
<object>
和<embed>
标记,最好使用<iframe>
标记来执行此操作 .为了让您的用户不要一辈子都在尝试在链接中找到视频ID以将其放入您的表单字段中,让他们发布他们在youtube上找到的视频的链接,您可以使用以下正则表达式来获取视频ID :
要获取视频ID,您可以获取它
$matches[1]
,这些将匹配:youtube.com/v/vidid
youtube.com/vi/vidid
youtube.com/?v=vidid
youtube.com/?vi=vidid
youtube.com/watch?v=vidid
youtube.com/watch?vi=vidid
youtu.be/vidid
youtube.com/embed/vidid
http://youtube.com/v/vidid
http://www.youtube.com/v/vidid
https://www.youtube.com/v/vidid
youtube.com/watch?v=vidid&wtv=wtv
http://www.youtube.com/watch?dev=inprogress&v=vidid&feature=related
https://m.youtube.com/watch?v=vidid
这个答案的一部分由@ shawn在this question中的回答引用 .
在
watch?v=
之后使用正则表达式提取"video id"将视频ID存储在变量中,让我们调用此变量
vid
从随机视频中获取嵌入代码,从嵌入代码中删除视频ID,并将其替换为您获得的
vid
.我不知道如何在php中处理正则表达式,但它不应该太难
这是python中的示例代码:
正则表达式
v\=([\-\w]+)
捕获v=
之后出现的(子)字符串和破折号以下是我编写的一些代码,用于自动将URL转换为链接并自动嵌入来自youtube的任何视频网址 . 我是为一个我正在研究的聊天室做的,它运作得很好 . 我相信它可以用于任何其他目的,例如博客 .
您所要做的就是调用函数“autolink()”并将其传递给要解析的字符串 .
例如,包括下面的函数,然后回显此代码 .
`
如果您想以编程方式上传视频,请查看YouTube Data API以查看PHP
在搜索同一个主题时,我发现了另一种使用Javascript和Youtube API的方法
直接来自:http://code.google.com/apis/ajax/playground/#simple_embed
加载API
并执行以下javascript代码:
完整的样本在前面提到的页面中http://code.google.com/apis/ajax/playground
你可以用Joomla做到这一点 . 让我假设一个YouTube网址示例 - https://www.youtube.com/watch?v=ndmXkyohT1M
你可以简单地为
Varchar date
创建一个php输入表单,给它一个varchar
长度,让我们说300.然后让用户复制并粘贴嵌入代码 . 当你查看记录时,你将查看流视频 .luvboy,
如果我清楚地理解,用户提供Youtube视频的URL /代码,然后该视频显示在页面上 .
为此,只需编写一个简单的页面,使用布局等 . 从youtube复制视频嵌入代码并将其粘贴到您的页面中 . 用一些字段替换嵌入代码,比如说VideoID . 将此VideoId设置为您的用户提供的代码 .
编辑:见Alec Smart的回答 .
只需对Alec Smart 's answer: since AS2 is deprecated now, the '?version = 3'进行一次小更新即可让他的示例正常工作 . 请参阅YouTube Embedded Players and Player Parameters的"Selecting content to play"下的Youtube参考细节 .
换一种说法:
显然,上面的Youtube引用如下所示(内部嵌入可能用作尚未支持object标签的浏览器的后备):
或使用iframe(将http://example.com替换为您网站的域名):
这YouTube embed generator解决了我在视频嵌入方面遇到的所有问题 .