谁能给我一个想法,我们如何显示或嵌入一个YouTube视频,如果我们只有网址或嵌入代码?
发布于 2009-01-05 07:30:26
你必须要求用户存储youtube视频中的11个字符的代码。
例如,http://www.youtube.com/watch?v=Ahg6qcgoay4
十一个字符的代码是: Ahg6qcgoay4
然后将这段代码放入数据库中。然后,无论您想在页面中放置youtube视频的任何位置,从数据库中加载字符,并放置以下代码:
例如,对于Ahg6qcgoay4,它将是:
<object width="425" height="350" data="http://www.youtube.com/v/Ahg6qcgoay4" type="application/x-shockwave-flash"><param name="src" value="http://www.youtube.com/v/Ahg6qcgoay4" /></object>
发布于 2011-09-30 06:36:17
从长的和短的youtube urls中,你都可以这样获得嵌入:
$ytarray=explode("/", $videolink);
$ytendstring=end($ytarray);
$ytendarray=explode("?v=", $ytendstring);
$ytendstring=end($ytendarray);
$ytendarray=explode("&", $ytendstring);
$ytcode=$ytendarray[0];
echo "<iframe width=\"420\" height=\"315\" src=\"http://www.youtube.com/embed/$ytcode\" frameborder=\"0\" allowfullscreen></iframe>";
希望这能帮助到某个人
发布于 2009-01-08 07:25:22
在watch?v=
之后使用正则表达式提取“视频id”
将视频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 '''<object width="425" height="344"><param name="movie" value="http://www.youtube.com/v/%s&hl=en&fs=1"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/%s&hl=en&fs=1" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="344"></embed></object>''' % (vid,vid)
<object width="425" height="344"><param name="movie" value="http://www.youtube.com/v/7-dXUEbBz70&hl=en&fs=1"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/7-dXUEbBz70&hl=en&fs=1" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="344"></embed></object>
>>>
正则表达式v\=([\-\w]+)
捕获v=
后面的(子)字符串和短划线
https://stackoverflow.com/questions/412467
复制相似问题