0

我不确定我做错了什么,并且只是 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>

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

任何人都可以帮助我了解我在哪里做错了似乎我没有正确解码它或者我缺少的其他一些东西是从我的 php 函数调用发送错误的 HTML

4

2 回答 2

2

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

htmlentities( addslashes($string) );

现在要获得准确的输出,您需要使用以下stripslashes功能删除斜线:

stripslashes( html_entity_decode($event->Description, ENT_QUOTES, 'UTF-8') );
于 2012-12-02T11:35:49.580 回答
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.

于 2012-12-02T07:31:11.480 回答