PHP html_entity_decode没有正确显示HTML文本

时间:2012-12-02 07:12:34

标签: php wordpress

我不确定我做错了什么,只是PHP的初学者我不确定我的方法是否正确。 我正在使用TinyMCE编辑器将一些文本存储在数据库中,并将在我的WordPress驱动的站点中的浏览器中显示此文本。

这是实际存储在数据库中的文本

<strong>Well we should think about how to see this editor</strong>
<ul>
    <li>Its Good in nature</li>
    <li>Well Matured</li>
    <li>Easy to use.</li>
</ul>
<strong><span style=\"color: #ff0000;\">We should use this editor every now and than</span></strong> <span style=\"color: #333333;\">©</span>

This is going to be a heading to test it
<h1 style=\"text-align: right;\"></h1>

很抱歉这样的编码文本,我使用PHP的html_entity_decode方法将该文本发送回浏览器以显示。 这是我的函数调用

html_entity_decode($event->Description,ENT_QUOTES,'UTF-8')

HTML输出

<font color="#cc0000">'<strong>Well we should think about how to see this editor</strong>
 <ul> 
  <li>Its Good in nature</li> 
  <li>Well Matured</li> 
  <li>Easy to use.</li> 
  </ul>
  <strong>
  <span style=\"color: #ff0000;\">We should use this editor every now and than</span></strong> 
  <span style=\"color: #333333;\">©</span> 
  This is going to be a heading to test it 
  <h1 style=\"text-align: right;\"></h1>'</font>

除了颜色信息之外,似乎一切都已到位.Colors在生成的HTML输出中不起作用

任何人都可以帮助我理解我在做错的地方似乎要么我没有正确解码它还是其他一些我错过的从我的php函数调用发送错误的HTML

2 个答案:

答案 0 :(得分:1)

这可能是数据被保存的编码方式:

htmlentities( addslashes($string) );

现在要获得准确的输出,您需要使用stripslashes函数删除斜杠:

stripslashes( html_entity_decode($event->Description, ENT_QUOTES, 'UTF-8') );

答案 1 :(得分:0)

乍一看,我看到双引号在HTML代码中被转义。他们不应该。尝试删除反斜杠。像这样:

  <span style="color: #ff0000">We should use this editor every now and than</span></strong> 
  <span style="color: #333333">©</span> 

使用html_entity_decode()尝试ENT_NOQUOTES