任何人都可以告诉我如果我们只有URL或嵌入代码,我们如何展示或嵌入YouTube视频?
您必须要求用户存储YouTube视频中的11个字符代码.
例如http://www.youtube.com/watch?v=Ahg6qcgoay4
十一个字符代码是:Ahg6qcgoay4
然后,您将此代码放在数据库中.然后,无论您想将youtube视频放在页面中的哪个位置,都要从数据库中加载角色并输入以下代码: -
例如,对于Ahg6qcgoay4,它将是:
不要将嵌入代码存储在数据库中--YouTube可能会不时更改嵌入代码和URL参数.例如,嵌入代码已经退役,转而使用
嵌入代码.您应该从URL/embed代码中解析出视频ID(使用正则表达式,URL解析函数或HTML解析器)并存储它.然后使用YouTube API当前提供的任何机制显示它.
用于提取视频ID的简单PHP示例如下:
我建议您查看这些文章以了解如何处理这些ID:
使用IFrame嵌入嵌入YouTube视频,播放列表等
要创建自己的YouTube视频播放器:
YouTube嵌入式播放器参数
YouTube JavaScript播放器API参考
从长短管理网址中你可以通过这种方式获得嵌入:
$ytarray=explode("/", $videolink); $ytendstring=end($ytarray); $ytendarray=explode("?v=", $ytendstring); $ytendstring=end($ytendarray); $ytendarray=explode("&", $ytendstring); $ytcode=$ytendarray[0]; echo "";
希望它可以帮助某人
根据HTML Youtube视频不推荐使用和
标签,最好使用标签来执行此操作.
为了让您的用户不要一辈子都在尝试在链接中找到视频ID以将其放入您的表单字段中,让他们发布他们在youtube上找到的视频的链接,您可以使用以下正则表达式来获取视频ID :
preg_match("/^(?:http(?:s)?:\/\/)? (?:www\.)?(?:m\.)?(?:youtu\.be\/|youtube\.com\/(?:(?:watch)?\?(?:.*&)?v(?:i)?=| (?:embed|v|vi|user)\/))([^\?&\"'>]+)/", $url, $matches);
要获取视频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在这个问题中回答了这个答案的部分内容.
使用正则表达式后提取"视频ID" watch?v=
将视频ID存储在变量中,让我们调用此变量 vid
从随机视频中获取嵌入代码,从嵌入代码中删除视频ID并将其替换为vid
您获得的.
我不知道如何在php中处理正则表达式,但它不应该太难
这是python中的示例代码:
>>> ytlink = 'http://www.youtube.com/watch?v=7-dXUEbBz70' >>> import re >>> vid = re.findall( r'v\=([\-\w]+)', ytlink )[0] >>> vid '7-dXUEbBz70' >>> print '''''' % (vid,vid) >>>
正则表达式v\=([\-\w]+)
捕获后面的(子)字符串和破折号v=
以下是我编写的一些代码,用于自动将URL转换为链接并自动嵌入来自youtube的任何视频网址.我是为一个我正在研究的聊天室做的,它运作得很好.我相信它可以用于任何其他目的,例如博客.
您所要做的就是调用函数"autolink()"并将其传递给要解析的字符串.
例如,包括下面的函数,然后回显此代码.
` echo ''.autolink($string).''; /****************Function to include****************/ '.$links[$j].'',$string).'
'; }else{ $string=str_replace($links[$j],''.$links[$j].'',$string); } } } return ($string); } ?>
`