Youtube iframe解码为htmlentities

时间:2013-07-02 05:33:35

标签: php mysql codeigniter tinymce

您好我正在使用tinyMCE编辑器,并且在从数据库中检索内容时遇到问题。

每当我输入

Lorem ipsum dolor sit amet dolor amet sit dolor ipsum.
[youtube_video_here]

它成功保存到数据库中。但是,当我试图从数据库中显示它而不是打印下面的代码时

<iframe ....the rest of the code

打印

&gt;iframe ...the rest of the code &lt;&gt;/iframe>

奇怪的是它会打印其他HTML标签,例如

<br/> or <p>

正确。

我在CodeIgniter中使用PHP来检索内容。

有没有人有任何想法?

1 个答案:

答案 0 :(得分:1)

有几种方法可以实现这一目标。并非所有都适合您,所以您必须尝试,直到找到正确的解决方案。最好的方法是正确存储数据库中的内容。

变体1. TinyMCE配置。添加此行

extended_valid_elements: "iframe[src|width|height|name|align]"

此处有更多信息:extended_valid_elements

变体2.在保存到数据库之前解码此参数。使用PHP,您将执行此操作:

$content = html_entity_decode($content);

然后保存到您的数据库。

变体3.快速和肮脏。也许我应该从这开始:)

$content = str_replace('&lt;iframe', '<iframe', $content);
$content= str_replace('&gt;&lt;/iframe>', '></iframe>', $content);
$content= str_replace('&gt;&lt;/iframe&gt;', '></iframe>', $content);

如果我能得到进一步的帮助,请告诉我。