如何使用PHP存储和检索嵌入MySQL数据库的YouTube?

时间:2018-06-19 13:54:41

标签: php html mysql laravel youtube

我试图在我的网站上存储和检索嵌入式YouTube视频的HTML,但是遇到了麻烦。这是我的代码:

Controller

$html = request('media');

$html = htmlentities($html);

$post = Post::create(array_merge(['media' => $html],request(['title', 'content'])));

Retrieval

{{ html_entity_decode($post->media) }}

重要的事情是,我正在使用Laravel,并且在我的MySQL数据库中,我将此HTML存储为类型text。那么,我将如何实现呢?检索代码仅显示HTML代码,但不呈现。当我查看源代码时,是因为检索到的HTML像这样

<iframe width="560" height="315" src="https://www.youtube.com/embed/CgsymJy0RJk" frameborder="0" allow="autoplay; encrypted-media" allowfullscreen></iframe>

如何将HTML保存到数据库中,以便对其进行检索并呈现所需的嵌入式视频?

2 个答案:

答案 0 :(得分:0)

在控制器上,移除$html = htmlentities($html);

查看: {!! $post->media !!}

答案 1 :(得分:0)

请勿使用函数htmlentities更改保存在数据库中的代码:

PHP manual所述:

  

htmlentities-将所有适用的字符转换为HTML实体

此外,在将原始HTML保存到数据库中时,请注意 SQL注入

或者从数据库读取媒体后,只需在控制器中使用html_entity_decode