【问题标题】:How to get Youtube url from MySQL database?如何从 MySQL 数据库中获取 Youtube 网址?
【发布时间】:2015-07-03 00:35:00
【问题描述】:

我正在尝试通过此代码显示提交的 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) 这与在 localhost 上测试代码有什么关系,并且在上传到真实域时可能会解决?

2)这是通过 php 表单和 mysql 数据库回显 youtube 视频的好方法吗?

3)我可以做些什么来克服这个问题?

注意:在谷歌搜索错误后,我理解它与 youtube 不允许其 iframe 显示在任何其他域上有关,但这就是为什么我想知道本地主机“域”是否可能导致这种情况......

【问题讨论】:

  • 尝试将标题 X-Frame-Options 从 SAMEORIGIN 更改为

标签: php mysql video youtube


【解决方案1】:

您需要将视频的嵌入网址保存在数据库中。那么你可以像这样使用

 <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);

第二个选项是

只需选择链接末尾的视频代码

例如

http://www.youtube.com/watch?v=Ahg6qcgoay4 从此链接获取 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); 

【讨论】:

  • 问题解决了,正确的嵌入地址/链接解决了问题。
【解决方案2】:
  1. 处理此问题的最佳方法是在将 URL 保存到数据库之前拆分 URL,然后从中提取 _whatever

  2. 当您从数据库中提取此内容时,请执行以下操作:

    &lt;iframe width='160' height='120' frameborder='0' allowfullscreen src='http://www.youtube.com/embed/".$row['videourl']."'&gt;&lt;/iframe&gt;

因为 Youtube 的 URL 通常有两种类型

 i. 'https://www.youtube.com/watch?v=_whatever'
ii. 'https://www.youtube.com/embed/_whatever'

使用&lt;iframe&gt; 时更好的做法是使用ii. URL

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-06-20
    • 2023-04-03
    • 2012-12-06
    • 2017-10-09
    • 2012-02-28
    • 1970-01-01
    • 2017-02-06
    • 1970-01-01
    相关资源
    最近更新 更多