如何从 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); 
  1. 处理这个问题的最佳方法是在将 URL 保存到数据库之前将其拆分并从中提取 _whatever

  2. 当您将其从数据库中提取出来后,请执行以下操作:

    <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