如何从 MySQL 数据库中获取 Youtube url?
How to get Youtube url from MySQL database?
我正在尝试通过此代码显示提交的 YouTube 视频列表
while ($row = mysql_fetch_assoc($qry)) {
echo "
<iframe width=\"160\" height=\"120\" frameborder=\"0\" allowfullscreen src=".$row['videourl']."></iframe>
</div>";
}mysql_free_result($qry);
但是由于以下错误,视频没有显示:
拒绝在框架中显示“https://www.youtube.com/watch?v=_whatever”,因为它将 'X-Frame-Options' 设置为 'SAMEORIGIN'。
1) 这与在本地主机上测试代码有什么关系吗?当上传到真实域时可能会解析吗?
2) 这是通过 php 表单和 mysql 数据库回显 YouTube 视频的好方法吗?
3)我该怎么做才能克服这个问题?
注意:在谷歌搜索错误后,我了解到它与 youtube 不允许其 iframe 在任何其他域上显示有关,但这就是为什么我想知道本地主机 "domain" 是否可能导致此问题...
您需要在数据库中保存视频的嵌入 url。那么你可以这样使用
<object width="420" height="315"
data="http://www.youtube.com/embed/XGSy3_Czz8k">
</object>
或者第二种方法是
<embed width="420" height="315"
src="http://www.youtube.com/embed/XGSy3_Czz8k">
之后此代码将起作用。
while ($row = mysqli_fetch_assoc($qry)) {
echo "
<iframe width=\"160\" height=\"120\" frameborder=\"0\" allowfullscreen src=".$row['videourl']."></iframe>
</div>";
}mysqli_free_result($qry);
第二个选项是
直接选择link末尾的视频代码
例如
http://www.youtube.com/watch?v=Ahg6qcgoay4
从这个 link 得到 Ahg6qcgoay4
并在你的代码
中创建 link 就像 http://www.youtube.com/v/Ahg6qcgoay4
然后使用类似这样的东西
while ($row = mysqli_fetch_assoc($qry)) {
echo "
<iframe width=\"160\" height=\"120\" frameborder=\"0\" allowfullscreen src='http://www.youtube.com/v/".$code."'></iframe>
</div>";
}mysqli_free_result($qry);
处理这个问题的最佳方法是在将 URL 保存到数据库之前将其拆分并从中提取 _whatever
。
当您将其从数据库中提取出来后,请执行以下操作:
<iframe width='160' height='120' frameborder='0' allowfullscreen src='http://www.youtube.com/embed/".$row['videourl']."'></iframe>
原因是 Youtube URL 通常有两种类型
i. 'https://www.youtube.com/watch?v=_whatever'
ii. 'https://www.youtube.com/embed/_whatever'
使用 <iframe>
时更好的做法是使用 ii.
URL
我正在尝试通过此代码显示提交的 YouTube 视频列表
while ($row = mysql_fetch_assoc($qry)) {
echo "
<iframe width=\"160\" height=\"120\" frameborder=\"0\" allowfullscreen src=".$row['videourl']."></iframe>
</div>";
}mysql_free_result($qry);
但是由于以下错误,视频没有显示: 拒绝在框架中显示“https://www.youtube.com/watch?v=_whatever”,因为它将 'X-Frame-Options' 设置为 'SAMEORIGIN'。
1) 这与在本地主机上测试代码有什么关系吗?当上传到真实域时可能会解析吗?
2) 这是通过 php 表单和 mysql 数据库回显 YouTube 视频的好方法吗?
3)我该怎么做才能克服这个问题?
注意:在谷歌搜索错误后,我了解到它与 youtube 不允许其 iframe 在任何其他域上显示有关,但这就是为什么我想知道本地主机 "domain" 是否可能导致此问题...
您需要在数据库中保存视频的嵌入 url。那么你可以这样使用
<object width="420" height="315"
data="http://www.youtube.com/embed/XGSy3_Czz8k">
</object>
或者第二种方法是
<embed width="420" height="315"
src="http://www.youtube.com/embed/XGSy3_Czz8k">
之后此代码将起作用。
while ($row = mysqli_fetch_assoc($qry)) {
echo "
<iframe width=\"160\" height=\"120\" frameborder=\"0\" allowfullscreen src=".$row['videourl']."></iframe>
</div>";
}mysqli_free_result($qry);
第二个选项是
直接选择link末尾的视频代码
例如
http://www.youtube.com/watch?v=Ahg6qcgoay4
从这个 link 得到 Ahg6qcgoay4
并在你的代码
http://www.youtube.com/v/Ahg6qcgoay4
然后使用类似这样的东西
while ($row = mysqli_fetch_assoc($qry)) {
echo "
<iframe width=\"160\" height=\"120\" frameborder=\"0\" allowfullscreen src='http://www.youtube.com/v/".$code."'></iframe>
</div>";
}mysqli_free_result($qry);
处理这个问题的最佳方法是在将 URL 保存到数据库之前将其拆分并从中提取
_whatever
。当您将其从数据库中提取出来后,请执行以下操作:
<iframe width='160' height='120' frameborder='0' allowfullscreen src='http://www.youtube.com/embed/".$row['videourl']."'></iframe>
原因是 Youtube URL 通常有两种类型
i. 'https://www.youtube.com/watch?v=_whatever'
ii. 'https://www.youtube.com/embed/_whatever'
使用 <iframe>
时更好的做法是使用 ii.
URL